获取 MediaPlayer 的状态
Posted
技术标签:
【中文标题】获取 MediaPlayer 的状态【英文标题】:Get state of MediaPlayer 【发布时间】:2011-04-11 06:40:34 【问题描述】:在我的应用程序中,我从用户那里获得了多条路径(1 到图像,1 到音轨,1 到视频)并将它们存储在数据库中。当另一个活动开始查看文件时,不能保证文件仍然在这些路径中,甚至根本不存在,因为用户选择了它们并且可能已经删除/移动了它们。因此,我需要能够检查这些路径中的文件是否有效。 我最初的计划是简单地捕获构造+设置每个对象时抛出的任何异常。 这是我用来查看每个的:
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 的状态或其他方式来检查路径有什么想法吗?
谢谢!
【问题讨论】:
【参考方案1】:您可以将OnErrorListener
设置为VideoView
和MediaPlayer
。如果发生错误 - 您的侦听器将被调用。此外,您可以使用MediaPlayer
或VideoView
检查音频和视频,因为它包含MediaPlayer
来处理两者。
顺便说一句,我认为VideoView
的侦听器实际上设置在VideoView
内的MediaPlayer
对象中
【讨论】:
以上是关于获取 MediaPlayer 的状态的主要内容,如果未能解决你的问题,请参考以下文章
E/MediaPlayer: Should have subtitle controller already set
Android Multimedia框架总结MediaPlayer中从Java层到C++层类关系及prepare及之后其他过程