示例应用程序的视频未在Android TV模拟器中运行

时间:2014-12-15 17:22:10

标签: android android-emulator android-studio android-tv

示例应用中的视频(适用于视频的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 个答案:

答案 0 :(得分:1)

方式: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(),即使该歌曲根本没有播放也是如此。

要解决此问题,请在调用方法之前检查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);
    }
}); 

来源链接: - Media Player called in state 0, error (-38,0)