我在互联网上有一个mp3文件的网址,想在我的应用程序中播放它。现在我这样做:
private void processPlayRequest(String url) {
if (mPlayer != null) {
mPlayer.stop();
mPlayer.reset();
mPlayer.release();
}
tryToGetAudioFocus();
if (mAudioFocus == AudioFocus.Focused) {
mPlayer = MediaPlayer.create(this, Uri.parse(url));
mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mPlayer.setWakeMode(getApplicationContext(), PowerManager.PARTIAL_WAKE_LOCK);
mPlayer.setOnPreparedListener(this);
mPlayer.setOnCompletionListener(this);
mPlayer.setOnErrorListener(this);
}
}
它可以工作,但似乎没有缓冲,即只有在整个mp3文件被下载后才开始播放。我希望在可以提高性能的同时开始播放。所以我需要使用缓冲。有可能实现吗?
答案 0 :(得分:0)
您需要添加MediaPlayer.OnPreparedListener,然后调用MediaPlayer.prepareAsync(),然后从onPrepared()回调中调用start()。
你正在以不正确的方式调用start,reset,release。如果您要立即重置并释放,为什么还要开始呢?
关于如何在开发人员docs中使用该类,有一些相当不错的文档。