Android FFmpegMediaPlayer - MediaPlayer错误(0,0)

时间:2016-12-13 13:38:20

标签: android ffmpeg stream media-player android-mediaplayer

我正在使用这段代码播放云端的 acc ,其中 FFmpegMediaPlayer 取自:

https://github.com/wseemann/FFmpegMediaPlayer

代码:

FFmpegMediaPlayer player = new FFmpegMediaPlayer();
try {
  player.setAudioStreamType(AudioManager.STREAM_MUSIC);
  player.setDataSource(url);
  player.prepareAsync();
} catch ( IOException | ExecutionException | InterruptedException e ){
      e.printStackTrace();
}

当网址格式类似于“http://something.com/audio.aac”时,代码可以正常工作。

但是,当网址类似于“https://something.com/audio.aac?something_else_here”时,该代码无效,并且会触发错误(0,0)

FFmpegMediaPlayer 之前,我使用了 MediaPlayer ,方法完全相同。有时它有时会遇到同样的问题,所以我想切换到 FFmpegMediaPlayer ,即使它更快,但我没有处理这个错误。

现在有人怎么处理这个问题?

1 个答案:

答案 0 :(得分:1)

可能有几个原因导致此错误发生,但我将展示我在我的案例中做了什么。 我认为问题在于链接的结束字符串,但它看起来没问题。

我在项目中通过gradle安装了 FFmpegMediaPlayer

dependencies {
    compile 'com.github.wseemann:FFmpegMediaPlayer:1.0.4'
}

但看起来我正在打电话

player.setDataSource(url);
player.prepareAsync();

https链接出现问题。

所以,我做的是手动导入支持HTTPS的AAR包。我下载了它:

https://github.com/wseemann/FFmpegMediaPlayer/releases/download/v1.0.3/prebuilt-aars-with-https.zip

为不同的体系结构编译了几个AAR文件,但是还有一个包含所有体系结构的AAR文件。

所以这就是我的问题的解决方案。

缺点是,如果您选择包含为所有体系结构编译的文件,那么导入此AAR的应用程序大小至少会增加4MB,甚至会增加20MB。

最后我采用了另一种方法,但绝对 Android 应该关注其 MediaPlayer ,因为它给开发人员带来了太多痛苦。