java - Android 9.0 ijkplayer setSpeed 失败
问题描述
当我尝试在 Android 9.0 上更改视频速度时,它不起作用。仅适用于 9.0 且仅当设置速度超过 1.0 时。我只是使用 mIjkVideoPlayer.setSpeed(1.0)。它适用于 9.0 以下的所有其他设备。ijkplayer 版本:0.8.8,这是错误日志:
11-29 15:55:14.241 6747-6801/com.xiao.nicevieoplayer E/J4A: J4AC_android_media_AudioTrack__setSpeed 1.100000 11-29 15:55:14.241 6747-6801/com.xiao.nicevieoplayer D/AudioTrack: isSampleRateSpeed80 mAfLatency_count denied :1920 mAfSampleRate:48000 sampleRate:44100 speed:1.100000 mFrameCount:3544 < minFrameCount:3888 11-29 15:55:14.241 6747-6801/com.xiao.nicevieoplayer W/AudioTrack: setPlaybackRate(1.100000, 1.000000) 失败11-29 15:55:14.242 6747-6801/com.xiao.nicevieoplayer W/System.err: java.lang.IllegalArgumentException: 参数超出范围 11-29 15:55:14.242 6747-6801/com.xiao.nicevieoplayer W/System.err: at android.media.AudioTrack.native_set_playback_params(Native Method) 11-29 15:55:14.242 6747-6801/com.xiao.nicevieoplayer W/System.err: at android.media.AudioTrack.setPlaybackParams(音轨。java:1902) 11-29 15:55:14.242 6747-6801/com.xiao.nicevieoplayer W/System.err: java.lang.IllegalArgumentException: 参数超出范围 11-29 15:55:14.242 6747-6801/com .xiao.nicevieoplayer W/System.err: at android.media.AudioTrack.native_set_playback_params(Native Method) 11-29 15:55:14.242 6747-6801/com.xiao.nicevieoplayer W/System.err: at android.media. AudioTrack.setPlaybackParams(AudioTrack.java:1902)
解决方案
在初始化 ijkMediaPlayer 时添加这一行:
ijkMediaPlayer.setOption(IjkMediaPlayer.OPT_CATEGORY_PLAYER, "soundtouch", 1);
推荐阅读
- google-cloud-platform - 我可以将任何内容上传到 GCP 存储吗?
- python - 循环请求并从 Excel 中提取数据
- python - 如何混淆要编译为可执行文件的python代码?
- javascript - nodeJS 代码在 API 模式下无法正常运行
- vba - 如何在 word 中管理活动文档引用以保存和关闭我新创建的输出?
- react-native - 用于管理工作流的 Expo-payments-stripe 的 ETA
- javascript - 工作 SQL 在 pg-promise 中产生语法错误
- c# - 有没有一种方法可以轻松地将网格绑定到 Xamarin 中的表格,就像在我的 WinForms 代码中一样?
- javascript - 如何让事件监听器在单击按钮之前不监听?
- php - 转换后的 Laravel 工作查询参数 1 在转换后通过