目前我尝试了几个方式,都有问题。包括
ijkplayer参数设置讲解
里面的
_playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, "vol", (int)(volume / 30 * 256));
这句在直播已经播放后设置是完全没有作用的,播放前设置是否起作用未知,但因为不是想要的实时调节音量的效果,所以这里就暂时抛弃。
以及 [IJKPLAYER]基于DEMO分析IJKPLAYER的
_playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, "volume", volume);
这句代码只是在直播视频开始播放之前,才能设置音量的大小。
打算去查看源工程以及ffmpeg的源工程的,后来百度到了用af的方式来进行音量调节
_playerNative.SetOptionValue(IJKFFOptionCategory.Player,
"af", (int)((volume - 50f) * 10) + "dB");
因为ijkplayer的使用文档网上特别少,所以只能自己试着去使用这个参数,上面的写法试了都是不可行的。
源仓库代码中,选项的定义部分在ff_ffplay_options.h,关于输入的含义,目前找不到af相关的选项,所以只能挨个测试。
无论传入的db是范围0-3 还是 0-100 ,都是有声音。负数500到整数500都有声音。无论是作为int传入还是作为字符串传入
静音
静音这部分也是有相关的参数说明
{ “an”, “disable audio”, OPTION_OFFSET(audio_disable), OPTION_INT(0, 0, 1) },
按照归类应该是属于Play设置,但是代码中这样设置,是无效的。
_playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, "an", 1);
目前感觉这个参数在unity中设置也是无效的。
如果是在程序挂起的时候,要进行暂停播放,只能是调用退出播放的接口了
关于ijkplayer使用过程中的问题讨论地址
https://github.com/Bilibili/ijkplayer/issues
哔哩哔哩官网在github上给到的关于ijkplayer里面各个选项的参数网址
ijkplayer/ijkmedia/ijkplayer/ff_ffplay_options.h
|