我正在尝试从网络获取.ogg音频文件的持续时间。由于getDuration()的结果,我总是得到-1。这是我的代码:
String audioUrl = "URLHERE";
mMediaPlayer.setDataSource(audioUrl);
mMediaPlayer.prepareAsync(); //Also tried with prepare(), same result
在片段的OnViewCreated方法中,我使用setOnPreparedListener知道何时准备MediaPlayer,在这里我使用getDuration方法:
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
int duration = mp.getDuration(); //ALWAYS -1
}
});
所以在这里我总是得到-1。我不认为这是因为音频格式,因为音频已正确加载,并且可以使用.start()方法听到它。