android - 获取 MediaPlayer 的状态

标签 android media-player state drawable android-videoview

在我的应用程序中,我从用户那里获得了多个路径(1 个到图像,1 个到音轨,1 个到视频)并将它们存储在数据库中。当另一个 Activity 开始查看文件时,不能保证文件仍然在这些路径中,甚至根本不存在,因为用户选择了它们并且可能已经删除/移动了它们。因此,我需要能够检查这些路径中的文件是否有效。 我最初的计划是简单地捕获在构造 + 设置每个对象时抛出的任何异常。 以下是我用来查看每个内容的内容:

Image - a Drawable
Audio - a MediaPlayer
Video - a VideoView

我会通过向用户显示一个对话框来处理每个异常 但是,没有抛出异常,而是收到不同的错误消息

VideoView 显示自己的对话框“抱歉,无法播放此视频”

其他的去LogCat:

04-10 23:34:43.174: ERROR/PlayerDriver(30): Command PLAYER_SET_DATA_SOURCE completed with an error or info PVMFErrNotSupported
04-10 23:34:43.174: ERROR/MediaPlayer(271): error (1, -4)
04-10 23:34:43.365: ERROR/MediaPlayer(271): Error (1,-4)

关于如何获取 MediaPlayer 和 VideoView 的状态或其他检查路径的方法有什么想法吗?

谢谢!

最佳答案

您可以为 VideoViewMediaPlayer 设置 OnErrorListener。如果发生错误 - 您的监听器将被调用。此外,您可以使用 MediaPlayer 或使用 VideoView 检查音频和视频,因为它包含 MediaPlayer 无论如何都可以处理。

顺便说一句,我认为 VideoView 的监听器实际上是在VideoView 中的MediaPlayer 对象中设置的

关于android - 获取 MediaPlayer 的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5617646/

相关文章:

android - HttpURLConnection 不解压缩 Gzip

集成 Spreadsheets API 的 Android 应用程序

android - 如何在 recyclerview 中添加从左向右滑动

media-player - 你如何从 MediaPlayer 中获取艺术家和歌曲名称?

javascript - 如何使用从子组件传递到组件的 React 变量来更新 redux 状态

dart - 添加或删除项目时 SliverList 不会更新

安卓游戏开发 : Collision Detection Failing

javascript - 可嵌入 mp3 播放器,在音频中提供时间导航

c# - 如何在 C# 中播放声音?

reactjs - 从渲染函数访问状态