2017-09-28 115 views
2

我完全迷失了。我发现代码非常简单,并且没有在文档中找到任何理由为什么会返回一个很大的负数。代码如下MediaPlayer getDuration返回-1412558917

private int getDuration(String audioPath) throws Exception { 
    mediaPlayer = new MediaPlayer(); // This variable was created globally 
    mediaPlayer.setDataSource(audioPath); 
    return mediaPlayer.getDuration(); // Here it returns -1412558917 in every audio file i record, no matter if it's 3 seconds long or 8 

} 

我认为记录它并不重要,但是如果我误了,我会添加代码。我保存文件的格式是3gp。我能够在这之后重现声音,所以我不知道可能是什么问题

感谢

回答

1

您是否尝试过加入mediaPlayer.prepare();返回时间之前?

+0

现在我觉得哑巴了。我能够这样解决它。你有任何我可以阅读的链接,以更好地理解为什么这是必要的吗?谢谢! –

+0

随时:)记得标记答案为接受,如果它为你工作。 您可以在这里阅读更多关于Mediaplayer - https://developer.android.com/reference/android/media/MediaPlayer.html –

相关问题