示例应用程序中的视频(视频的AndroidTV Leanback支持库示例-https: //github.com/googlesamples/androidtv-Leanback)无法在Android TV模拟器中播放。我正在Android_TV_1080p_API_21模拟器上运行该应用程序。有什么事吗
编辑:我得到以下日志输出:
2247-2260/com.example.android.tvleanback E/MediaPlayer﹕ error (1, -38)
2247-2247/com.example.android.tvleanback E/MediaPlayer﹕ Error (1,-38)
2247-2247/com.example.android.tvleanback E/MediaPlayer﹕ stop called in state 0
2247-2247/com.example.android.tvleanback E/MediaPlayer﹕ error (-38, 0)
2247-2247/com.example.android.tvleanback W/MediaPlayer﹕ mediaplayer went away with unhandled events
方法:1您需要使用侦听器“ OnPreparedListener()”在onPrepared方法中调用mediaPlayer.start()。之所以收到此错误,是因为您要在它到达准备状态之前调用mediaPlayer.start()。
这是您可以做到的:
mp.setDataSource(url);
mp.setOnPreparedListener(this);
mp.prepareAsync();
public void onPrepared(MediaPlayer player) {
player.start();
}
方法2:似乎错误-38表示状态异常(如错误消息所指示)。例如,如果您在歌曲准备好之前调用start(),或者当您根本没有播放歌曲时调用pause()。
要解决此问题,请在调用方法之前检查mediaPlayer的状态。例如:
if(mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
此外,MediaPlayer正在发送事件消息。即使您不需要准备事件(尽管在触发此事件之前不开始回放也是一个好主意),也必须设置一个回调侦听器。对于OnErrorListener,OnCompletionListener,OnPreparedListener和OnSeekCompletedListener(如果您调用seek方法),也是如此。
听众可以简单地通过
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
// Do something. For example: playButton.setEnabled(true);
}
});
源链接:-媒体播放器处于状态0,错误(-38,0)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句