5

我已经按照 Igor Khrupin 的关于使用 MediaPlayer 类在 Android 中流式传输 mp3 文件的教程:http ://www.hrupin.com/2011/02/example-of-streaming-mp3-mediafile-with-android-mediaplayer-class

除了搜索栏的主要进度没有正确更新之外,这一切都很好。它在开始之后停止。在调试时,我可以看到 MediaPlayer.getCurrentPosition() 方法总是返回 261(毫秒),即使 mp3 歌曲播放正常。

有没有人遇到过这个问题或对如何解决它有任何想法?

非常感谢

4

2 回答 2

1

我也有同样的问题。我通过使用以下方法确定流的类型来解决问题setAudioStreamType(int)

Uri myUri = ....; // initialize Uri here
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(getApplicationContext(), myUri);
mediaPlayer.prepare();
mediaPlayer.start();
于 2018-07-14T17:08:20.410 回答
0

我在这里发现了问题。首先,我运行的模拟器没有打开音频,所以我需要在 Eclipse 的 AVD 管理器中添加启用音频的布尔值。没有打开音频是导致它总是返回 261 毫秒的原因。还有第二个问题。请参阅下面的 2 个代码片段。第一个是我的代码,第二个是教程中的代码。有一个细微的差异(括号的数量)导致第一个总是评估为 0。

seekBarProgress.setProgress((int)((float) mediaPlayer.getCurrentPosition() / getMp3Duration()) * 100);

seekBarProgress.setProgress((int) (((float) mediaPlayer.getCurrentPosition() / getMp3Duration()) * 100));
于 2012-11-06T11:02:40.550 回答