Sta*_*wed 17 android android-mediaplayer
我遇到了Android的MediaPlayer问题.它似乎缺少重要的功能,主要是获取MediaPlayer的当前状态或查明它是否已准备好的方法.我知道有上准备好的倾听者,但MediaPlayer的持续时间超过了活动,所以当比赛动态重新开始,这将是很好的得到当前的播放器状态,不管它是不是试图加载介质,介质是否加载等我错过了什么,或者我是否必须自己跟踪玩家状态?
其他很好的功能是onPlayStateChanged() - 我目前必须手动保持跟踪播放状态.我做错了吗?
ale*_*lan 13
希望答案还不算太晚.在MediaPlayer的类有没有这样的事,作为一个isPrepared()或getStatus()方法,你必须追踪其自己的状态.然而,这并不困难.
MediaPlayer类有一个很好的状态图,真的有帮助.您应该根据该图实现您的服务.此外,如果您始终从同一个线程控制MediaPlayer对象,则很容易跟踪其状态,因此我建议您这样做.prepareAsync()方法是你必须要处理的唯一异步方法,但是你可以保留一个布尔值来指示玩家正在准备,从prepareAsync()调用开始就是'true',直到onPrepared()为止.调用.无论如何,你总是可以实现onError并捕获IllegalStateException以避免在你不小心从非法状态调用任何方法时崩溃.
尽管如此,媒体播放指南对我帮助很大.
我需要在调试时查看状态以解决问题,所以我只是在知道MediaPlayer准备好之后将这段代码放在某处:
try {
this.audioPlayer.prepare();
} catch (Exception e) {
}
Run Code Online (Sandbox Code Playgroud)
这会向控制台输出一个错误,例如"E/MediaPlayer:在状态32中调用的prepareAsync".
现在,如果我能找到一个列出所有状态代码的地方......
| 归档时间: |
|
| 查看次数: |
14282 次 |
| 最近记录: |