Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用 mplayer 的音量控制替代系统音量控制? #41

Closed
Hexcles opened this issue Feb 10, 2015 · 1 comment
Closed

使用 mplayer 的音量控制替代系统音量控制? #41

Hexcles opened this issue Feb 10, 2015 · 1 comment

Comments

@Hexcles
Copy link
Contributor

Hexcles commented Feb 10, 2015

现在处理音量的部分非常 tricky ,主要原因是直接操作了系统的主音量(而静音又是用的 mplayer 内部的功能)。但是今天突然一想:按照正常的逻辑和习惯,这类的播放器应该是管理自己的音量才对。直接使用 mplayer 内部的软音量控制的话会省去很多麻烦。

另外,这也能“顺便”解决静音状态下切换歌曲的 bug 。

调试了一下发现,主要原因是出在 mplayer 的 slave 模式如果是在程序运行的瞬间、流未初始化的时候输入命令是没有效果的。停个一两秒再 mute 也不是个好主意——不同网络状态下初始化的时间不一样,可能出现播个半秒又静音,或者是1秒根本不够初始化的情况。

而如果换个思路,用 mplayer 的软件音量来实现静音功能,就有办法了——启动的时候加 -volume 0 参数即可。解除静音的时候再把音量重置回上一次的值(或者初始值)。

@taizilongxu 你觉得如何?

@taizilongxu
Copy link
Owner

恩,这个方法的确挺好,这个 bug 一直没改出来,我试试,thanks:)

Hexcles added a commit to Hexcles/douban.fm that referenced this issue Feb 12, 2015
* mute when volume downto 0
* unmute when volume changed and is larger than 0
* changing song when muted is now working correctly
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants