我正在开发一款适用于安卓4.0及以上版本的安卓应用程序。我有一个以下示例m3u8文件:
#EXTM3U
#EXT-X-TARGETDURATION:56
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:28, no desc
ulr/audio/file.mp3
#EXTINF:28, no desc
ulr/audio/file.mp3
#EXT-X-ENDLIST
我正在尝试使用以下代码播放该文件:
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setOnErrorListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try
{
mMediaPlayer.setDataSource(uri);
} catch (IllegalArgumentException e)
{
e.printStackTrace();
} catch (SecurityException e)
{
e.printStackTrace();
} catch (IllegalStateException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
}
mMediaPlayer.prepareAsync();
我的onPrepared()
方法如下:
public void onPrepared(MediaPlayer player)
{
player.start();
}
但代码首先进入
onPrepared()
,然后立即进入onError()
,what=1
和extra=-1010
。我知道这个问题已经被问了很多次(例如这里、这里和这里),我也知道Vitamio,但我想找出我的实现有什么问题。我的m3u8文件有问题吗?我查看了它的文档,一切都正确。
如果有人能在这个问题上提供帮助就太好了。