Android FFmpegMediaPlayer - 媒体播放器错误 (0, 0)
Android FFmpegMediaPlayer - MediaPlayer error(0, 0)
我正在使用这段代码播放云上的 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 即使它更快,但我没有处理这个错误。
请问现在有人如何处理这个问题吗?
发生此错误的原因可能有多种,但我将展示我在我的案例中做了什么。
我认为问题出在 link 的结尾字符串,但看起来没问题。
我在我的项目中通过 gradle 安装了 FFmpegMediaPlayer:
dependencies {
compile 'com.github.wseemann:FFmpegMediaPlayer:1.0.4'
}
但看起来我打电话时
player.setDataSource(url);
player.prepareAsync();
https
link 有问题。
所以,我所做的就是手动导入支持HTTPS
的AAR包。我下载在:
https://github.com/wseemann/FFmpegMediaPlayer/releases/download/v1.0.3/prebuilt-aars-with-https.zip
有几个针对不同架构编译的AAR文件,但也有一个包含所有架构的AAR文件。
这就是我的问题的解决方案。
缺点是如果您选择包含为所有体系结构编译的文件,则导入此 AAR 后应用程序的大小将至少增加 4MB,甚至增加 20MB。
最后我采用了另一种方法,但肯定 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();
}
当 URL 格式类似于“http://something.com/audio.aac”时,代码可以正常工作。
但是,当 URL 类似于“https://something.com/audio.aac?something_else_here”时,该代码不起作用,它会触发 en Error(0,0)。
在 FFmpegMediaPlayer 之前,我使用了 MediaPlayer,方法完全相同。有时它有同样的问题有时没有,所以我想切换到 FFmpegMediaPlayer 即使它更快,但我没有处理这个错误。
请问现在有人如何处理这个问题吗?
发生此错误的原因可能有多种,但我将展示我在我的案例中做了什么。 我认为问题出在 link 的结尾字符串,但看起来没问题。
我在我的项目中通过 gradle 安装了 FFmpegMediaPlayer:
dependencies {
compile 'com.github.wseemann:FFmpegMediaPlayer:1.0.4'
}
但看起来我打电话时
player.setDataSource(url);
player.prepareAsync();
https
link 有问题。
所以,我所做的就是手动导入支持HTTPS
的AAR包。我下载在:
https://github.com/wseemann/FFmpegMediaPlayer/releases/download/v1.0.3/prebuilt-aars-with-https.zip
有几个针对不同架构编译的AAR文件,但也有一个包含所有架构的AAR文件。
这就是我的问题的解决方案。
缺点是如果您选择包含为所有体系结构编译的文件,则导入此 AAR 后应用程序的大小将至少增加 4MB,甚至增加 20MB。
最后我采用了另一种方法,但肯定 Android 应该注意它的 MediaPlayer 因为它给开发者带来了巨大的痛苦。