我现在将我的应用程序Android API-23更新为API-28 ,MediaPlayer getDuration()
方法 return -1 ,在api-23 getDuration方法中工作正常,但在最新的api有问题。使用低质量(即16kbs)的音频时。但是同时我使用高质量(64kbs至192kbs)可以正常工作。
MediaPlayer mp;
// 128kbs working fine in my app
mp.setDataSource(http://www.villopim.com.br/android/Music_02.mp3);
// return actual time
mp.getDuration();
// 16kbs working fine in my app
mp.setDataSource(http://topappstopgames.com/appsdata/islamic/sn002.mp3);
// return -1
mp.getDuration();
因此,如何在最新的api中解决此问题。
答案 0 :(得分:1)
来自文档
持续时间(以毫秒为单位),如果没有持续时间可用(例如,如果正在流式传输实时内容),则返回-1。
但您不应该使用
mp.getDuration();
代替此:
mediaPlayer.getDuration();
?
答案 1 :(得分:0)
我现在转到ExoPlayer,它开始工作了。