MediaPlayer info



MEDIA_INFO_UNKNOWN = 1,
 // The player was started because it was used as the next player for another
 // player, which just completed playback
 MEDIA_INFO_STARTED_AS_NEXT = 2,
 // The player just pushed the very first video frame for rendering
 MEDIA_INFO_RENDERING_START = 3,
 // 7xx
 // The video is too complex for the decoder: it can't decode frames fast
 // enough. Possibly only the audio plays fine at this stage.
 MEDIA_INFO_VIDEO_TRACK_LAGGING = 700,
 // MediaPlayer is temporarily pausing playback internally in order to
 // buffer more data.
 MEDIA_INFO_BUFFERING_START = 701,
 // MediaPlayer is resuming playback after filling buffers.
 MEDIA_INFO_BUFFERING_END = 702,
 // Bandwidth in recent past
 MEDIA_INFO_NETWORK_BANDWIDTH = 703,
  
 // 8xx
 // Bad interleaving means that a media has been improperly interleaved or not
 // interleaved at all, e.g has all the video samples first then all the audio
 // ones. Video is playing but a lot of disk seek may be happening.
 MEDIA_INFO_BAD_INTERLEAVING = 800,
 // The media is not seekable (e.g live stream).
 MEDIA_INFO_NOT_SEEKABLE = 801,
 // New media metadata is available.
 MEDIA_INFO_METADATA_UPDATE = 802,
  
 //9xx
 MEDIA_INFO_TIMED_TEXT_ERROR = 900,
 };
MEDIA_INFO_UNKNOWN = 1,
 // The player was started because it was used as the next player for another
 // player, which just completed playback
 MEDIA_INFO_STARTED_AS_NEXT = 2,
 // The player just pushed the very first video frame for rendering
 MEDIA_INFO_RENDERING_START = 3,
 // 7xx
 // The video is too complex for the decoder: it can't decode frames fast
 // enough. Possibly only the audio plays fine at this stage.
 MEDIA_INFO_VIDEO_TRACK_LAGGING = 700,
 // MediaPlayer is temporarily pausing playback internally in order to
 // buffer more data.
 MEDIA_INFO_BUFFERING_START = 701,
 // MediaPlayer is resuming playback after filling buffers.
 MEDIA_INFO_BUFFERING_END = 702,
 // Bandwidth in recent past
 MEDIA_INFO_NETWORK_BANDWIDTH = 703,
  
 // 8xx
 // Bad interleaving means that a media has been improperly interleaved or not
 // interleaved at all, e.g has all the video samples first then all the audio
 // ones. Video is playing but a lot of disk seek may be happening.
 MEDIA_INFO_BAD_INTERLEAVING = 800,
 // The media is not seekable (e.g live stream).
 MEDIA_INFO_NOT_SEEKABLE = 801,
 // New media metadata is available.
 MEDIA_INFO_METADATA_UPDATE = 802,
  
 //9xx
 MEDIA_INFO_TIMED_TEXT_ERROR = 900,
 };
### 关于 IntelliJ IDEA 中 MediaPlayer 的使用方法 MediaPlayer 是 JavaFX 提供的一个类,专门用于处理多媒体文件的播放功能。要成功运行基于 MediaPlayer 的项目并解决可能遇到的问题,需注意以下几个方面: #### 1. **JavaFX 模块配置** 为了使 MediaPlayer 正常工作,必须确保项目的构建工具(如 Maven 或 Gradle)已正确引入 `javafx-media` 和其他必要的依赖项[^2]。如果未正确设置这些模块,则可能导致无法加载媒体资源。 对于 IntelliJ IDEA 用户来说,在创建新项目时可以选择启用 JavaFX 支持;或者手动编辑项目的 `module-info.java` 文件以及调整 VM 参数来支持 JavaFX 运行环境。 以下是通过命令行参数启动 JavaFX 应用的方式: ```bash --module-path /path/to/javafx-sdk/lib --add-modules javafx.controls,javafx.media ``` #### 2. **路径问题** 在代码片段中观察到尝试获取资源路径的方法存在潜在隐患。当调用 `Main.class.getResource()` 方法时,应特别留意相对路径是否匹配实际放置位置。通常情况下,建议将音效文件存放在 src 资源目录下,并采用如下形式指定路径字符串[^1]: ```java String path = Main.class.getClassLoader().getResource("音乐.mp3").toExternalForm(); Media media = new Media(path); ``` 上述写法可以更可靠地定位嵌入式资源的位置。 #### 3. **异常捕获与调试** 从原始代码可见已经设置了基本错误捕捉机制。然而仅打印堆栈信息并不足以快速诊断所有类型的故障。推荐增强日志记录级别以便收集更多上下文数据。另外值得注意的是某些平台特定的行为可能会干扰正常操作——比如操作系统级别的权限限制阻止访问本地存储中的音频素材。 #### 完整示例代码 下面给出一段经过改进后的完整实现版本作为参考: ```java import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import javafx.scene.media.Media; import javafx.scene.media.MediaPlayer; public class MusicApp extends Application { @Override public void start(Stage primaryStage) { Button btnPlay = new Button("播放"); // 加载 MP3 文件 String musicPath = getClass().getClassLoader() .getResource("音乐.mp3").toExternalForm(); Media sound = new Media(musicPath); final MediaPlayer mediaPlayer = new MediaPlayer(sound); btnPlay.setOnAction(e -> mediaPlayer.play()); StackPane root = new StackPane(); root.getChildren().add(btnPlay); Scene scene = new Scene(root, 300, 250); primaryStage.setTitle("简单音乐播放器"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args){ launch(args); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值