MediaPlayer为getDuration()返回-1

我试图在我的应用程序中使用音频流功能来实现MediaPlayer (即,音频文件在服务器中)。

  player = MediaPlayer(); player.setDataSource("http://wedevotional.com/a.mp3"); player.setOnBufferingUpdateListener(object : MediaPlayer.OnBufferingUpdateListener{ override fun onBufferingUpdate(p0: MediaPlayer?, p1: Int) { Log.d("Bufferring = ",p1.toString()) } }) player.setOnPreparedListener(object:MediaPlayer.OnPreparedListener{ override fun onPrepared(p0: MediaPlayer?) { Log.d("Duration = ",p0!!.duration.toString()) Log.d("Current Position = ",p0!!.currentPosition .toString()) } }) player.setOnErrorListener(object :MediaPlayer.OnErrorListener{ override fun onError(p0: MediaPlayer?, p1: Int, p2: Int): Boolean { Log.d("Error = ","Error") return true } }) player.prepareAsync() 

我想显示歌曲的CurrentDurationTotalDuration 。 另外,我应该能够在特定时间寻找歌曲。

但是, MediaPlayer总是返回-1

另外,如果我在其他地方上传相同的文件,那么它返回Current Duration适当时间。