3

我正在使用带有 m3u8 音频流的 MediaPlayer。这会导致日志错误消息:Error(1, -1010)

当我查看错误代码时,第一个参数似乎没问题:https ://github.com/android/platform_external_opencore/blob/master/pvmi/pvmf/include/pvmf_return_codes.h

只是-1010,很奇怪。

当我使用苹果视频m3u8网址时,效果很好!这是网址: http ://devimages.apple.com/iphone/samples/bibpop/gear1/prog_index.m3u8

我使用的代码很简单:

MediaPlayer mediaPlayer = new MediaPlayer();
try {
    mediaPlayer.setDataSource("http://devimages.apple.com/iphone/samples/bipbop/gear1/prog_index.m3u8");
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
    mediaPlayer.prepare();
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setOnErrorListener(this);
    mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.start();
} catch (IllegalArgumentException e1) {
    e1.printStackTrace();
} catch (IllegalStateException e1) {
    e1.printStackTrace();
} catch (IOException e1) { 
    e1.printStackTrace();
}

有谁知道仅音频流是否有限制?我使用了多种格式和不同的扩展名。

其他问题:有人有 m3u8 音频流的 URL,所以我可以测试其他流吗?

4

1 回答 1

1

我目前正在参与一个解决这个主题的项目。现在我知道这并不能真正回答您的问题,而只是为了深入了解,即使在 Android 4.0+ M3U8 上,对 M3U8 的支持充其量也是参差不齐,最坏的情况是糟糕透顶。

例如:

  • Nexus 7 在 Akmai 上失败,在 UStream 上运行
  • Droid RAZR 适用于 Akmai 和 UStream。

现在没有通过类扩展来修补库(并且对于每个其他 android 次要版本都有 .so),我们发现没有仅 SDK/NDK 的解决方案;在我们的项目经过一个月的反复试验后,我们放弃了(成本太高)。

我们实施的解决方案是:尝试 SDK MediaPlayer。如果失败,请使用基于 FFMPEG 的播放器(内部开发,使用 dranger、ffplay、android-fplayer 和 dolphin-player 作为灵感)。

于 2012-08-30T19:49:56.730 回答