【问题标题】:Android MediaPlayer.getCurrentPosition not updatingAndroid MediaPlayer.getCurrentPosition 未更新
【发布时间】:2012-11-06 09:19:42
【问题描述】:

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

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

之前有没有人遇到过这个问题或有任何解决方法的想法?

非常感谢

【问题讨论】:

    标签: android streaming mp3 media-player


    【解决方案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();
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多