我正在为 android OS > 4.0(包括和发布 OS)开发一个 android 应用程序。我有一个示例 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 文件有问题吗?我浏览了它的文档,一切似乎都是正确的。
如果有人可以在这件事上有所启发,那将非常高兴。
-提前致谢