MediaPlayer:应该已经设置了字幕控制器:KitKat

bne*_*her 37 android android-mediaplayer android-4.4-kitkat

我有一个奇怪的问题,我的音频文件有时会播放,有时不播放.问题是当它决定不玩时,DDMS给了我一个:

E/MediaPlayer? Should have subtitle controller already set
Run Code Online (Sandbox Code Playgroud)

因为这是一对一的音乐没有播放,我已经确定这可能是问题......

如果音乐没有播放,我按下音量按钮就会开始播放.如果我等待大约30秒的无人游戏,它会再次开始(不循环).

这里发生了什么?我正在使用KitKat

        player = new MediaPlayer();
        AssetFileDescriptor afd = null;
        try {
            afd = getAssets().openFd("Theme.mp3");
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength()); 
        } catch (IOException e) {
            e.printStackTrace();
        }
        try {
            player.prepare();
        } catch (IOException e) {
            e.printStackTrace();
        }
        player.setLooping(true); //restart playback end reached
        //player.setVolume(1, 1); //Set left and right volumes. Range is from 0.0 to 1.0
        player.start(); //start play back
Run Code Online (Sandbox Code Playgroud)

小智 10

看一下之前关于StackOverflow的讨论,以及 引入它的引用的Android提交,上面的代码可能无法完全初始化MediaPlayer对象.

媒体播放的KitKat示例代码建议您应该调用:

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
Run Code Online (Sandbox Code Playgroud)

在构造之后MediaPlayer,在调用其setDataSource方法之前立即执行.

  • 这并没有改变任何事情. (29认同)