【问题标题】:Android FFmpegMediaPlayer - MediaPlayer error(0, 0)Android FFmpegMediaPlayer - MediaPlayer 错误(0, 0)
【发布时间】:2016-12-13 13:38:19
【问题描述】:

我正在使用这段代码来播放云上的 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();
}

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

但是,当 URL 类似于“https://something.com/audio.aac?something_else_here”时,该代码不起作用并触发 en Error(0,0)

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

现在有没有人可以解决这个问题?

【问题讨论】:

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


    【解决方案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,因为它给开发人员带来了极大的痛苦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多