我遇到了一个奇怪的问题,我的音频文件有时会播放,有时不播放。问题是,当它决定不玩时,DDMS 会给我一个:
E/MediaPlayer﹕ Should have subtitle controller already set
因为这是一对一的音乐不播放,我已经确定这可能是问题......
如果音乐没有播放并且我按下音量按钮,它就会开始播放。 如果我等待大约 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
最佳答案
查看 previous discussion在 StackOverflow 上,以及引用的 Android commit在引入这一点的地方,上面的代码可能没有完全初始化 MediaPlayer
对象。
KitKat example code对于媒体播放,建议您调用:
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
在你构造 MediaPlayer
之后,在你调用它的 setDataSource
方法之前。
关于android - 媒体播放器 : Should have subtitle controller already set: KitKat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21790824/