当前位置:网站首页>xmms的歌词显示及音量控制OK
xmms的歌词显示及音量控制OK
2022-08-09 10:05:00 【NextDreamInc】
昨天郁闷了一天,音量调节一直无效,在自己的程序,xmms,lib库之间费了好些时间,才将问题定位到liboss插件上,看了看代码没看明白,
里面的:
void oss_set_volume(int l, int r)
{
int fd, v/*, cmd, devs*/;
gchar *devname;
devname = get_mixer_device();
fd = open(devname, O_RDONLY);
if (fd != -1)
{
/* g_warning("oss_set_volume(): left = %d", l);
g_warning("oss_set_volume(): right = %d", r); */
#ifndef EZX
v = (r << 8) | l;
ioctl(fd, SOUND_MIXER_WRITE_VOLUME, &v);
#else
v = (r & 0x00FF) | (l & 0x00FF); // 0 - 100, ezx not support independent channel gain?
// no left/right balance possibility?
if (v == 45 || v == 55 || v == 65 || v == 75) v = v + 1;
ioctl(fd, SOUND_MIXER_WRITE_VOLUME, &v);
#endif
close(fd);
}
else
g_warning("oss_set_volume(): Failed to open mixer device (%s): %s",
devname, strerror(errno));
g_free(devname);
}
中的红字部分不明白什么意思,但我感觉问题就出在这个上,因为音量在调到76时就不能减小了,
一定是这个造成的!
实在想不通,就问问大侠们,他看了这个代码说是因为播放器为了在来电话时自动停止播放,是通过音量监视的,45,55,65,75是系统的音量,可能只要看到这个音量或是发现音量被其它程序改变了就认为来电话了。所以自己的程序就最好不要用这几个音量,那问题还是出在自己的程序上,其实是它的这个方法有点怪,不管他了,只要就把音量定义成为32,37,42...这样就不会与它冲突了。马上改了程序,编译后试了试,果然可以调音量了,呵呵!兴奋ing!
还有昨天搞了一天,把歌词显示做的比较完善了,在上一曲,下一曲,停止,暂停时,歌词也会相应地动作!
但是还有问题要改,在xmms后台不经过我的程序,自己播放下一曲的时候,我的主界面程序跟xmms后台之间是没有通信的,也就是说,xmms已经播放下一曲了,我的程序上面显示的还是以前播放的那首歌,这个倒不怎么影响听歌,但也是个不小的bug。
还要完善的功能还要有均衡器,和播放列表的管理,还有就是启动时的问题,主界面得等xmms初始化完成后,才能读取播放列表,如果xmms 启动慢了,主界面就会读到一个空的列表,我已经有办法了,但就是线程等待不太熟,等有空了就完善一下这几个问题。
边栏推荐
猜你喜欢
随机推荐
8. Recursively traverse and delete cases
蓄电池建模、分析与优化(Matlab代码实现)
Nodejs服务端
Master-slave postition changes cannot be locked_Slave_IO_Running shows No_Slave_Sql_Running shows No---Mysql master-slave replication synchronization 002
Technology Sharing | How to simulate real usage scenarios?mock technology to help you
mac 上安装Redis和配置
排序1:冒泡排序
function two
多线程案例——阻塞式队列
缓存击穿,缓存穿透,缓存雪崩的解释和对应的一些解决方案
拿下跨界C1轮投资,本土Tier 1高阶智能驾驶系统迅速“出圈”
LeetCode56:合并区间 C语言解法,注解详细 一看就懂!
tuple dictionary collection
阿里神作!吃透这份资料入厂率高达99%
m个样本的梯度下降
超详细的MySQL基本操作
KMP& sunday
LeetCode(剑指 Offer)- 25. 合并两个排序的链表
在anaconda环境中配置cuda和cudnn
Tom Morgan | Twenty-One Rules of Life
![[贴装专题] 贴装流程中涉及到的位置关系计算](/img/72/a60a51c86e641749f38fab66f1236a.png)








