关于调节ijkPlayer的音量

目前我尝试了几个方式,都有问题。包括

ijkplayer参数设置讲解

里面的

_playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, "vol", (int)(volume / 30 * 256));

这句在直播已经播放后设置是完全没有作用的,播放前设置是否起作用未知,但因为不是想要的实时调节音量的效果,所以这里就暂时抛弃。

以及 [IJKPLAYER]基于DEMO分析IJKPLAYER

_playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, "volume", volume);

这句代码只是在直播视频开始播放之前,才能设置音量的大小。

打算去查看源工程以及ffmpeg的源工程的,后来百度到了用af的方式来进行音量调节

// _playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, 
//     "af",  (int)(volume / 30f));

// _playerNative.SetOptionValue(IJKFFOptionCategory.Player, 
//     "af",  (int)(volume / 30f) + "dB");

_playerNative.SetOptionValue(IJKFFOptionCategory.Player, 
"af",  (int)((volume - 50f) * 10) + "dB");

// _playerNative.SetOptionIntValue(IJKFFOptionCategory.Player, 
//     "af",  (int)(volume - 50f) * 10));

因为ijkplayer的使用文档网上特别少,所以只能自己试着去使用这个参数,上面的写法试了都是不可行的。

源仓库代码中,选项的定义部分在ff_ffplay_options.h,关于输入的含义,目前找不到af相关的选项,所以只能挨个测试。

无论传入的db是范围0-3 还是 0-100 ,都是有声音。负数500到整数500都有声音。无论是作为int传入还是作为字符串传入

关于ijkplayer使用过程中的问题讨论地址

https://github.com/Bilibili/ijkplayer/issues

哔哩哔哩官网在github上给到的关于ijkplayer里面各个选项的参数网址

ijkplayer/ijkmedia/ijkplayer/ff_ffplay_options.h

猜你喜欢

转载自blog.csdn.net/weixin_43149049/article/details/127325102