当前位置:网站首页>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 启动慢了,主界面就会读到一个空的列表,我已经有办法了,但就是线程等待不太熟,等有空了就完善一下这几个问题。
边栏推荐
猜你喜欢

循环嵌套以及列表的基本操作

Battery modeling, analysis and optimization (Matlab code implementation)

自启服务mock联调跨域问题

蓄电池建模、分析与优化(Matlab代码实现)

第二周作业

分类预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多特征分类预测

.equals==

Quick sort eight sorts (3) 】 【 (dynamic figure deduction Hoare, digging holes, front and rear pointer method)

【八大排序③】快速排序(动图演绎Hoare法、挖坑法、前后指针法)

字符串函数和内存函数
随机推荐
快速解决MySQL插入中文数据时报错或乱码问题
第二周作业
2. Thread creation
程序员的专属浪漫——用3D Engine 5分钟实现烟花绽放效果
[相机配置] 海康相机丢包配置环境
技术分享 | 如何模拟真实使用场景?mock 技术来帮你
[Machine Learning] Detailed explanation of web crawler combat
2021-04-26QGIS3.10加载天地图影像(地图瓦片)的一种方法
排序1:冒泡排序
5.Set interface and implementation class
Practical skills: a key for image information in the Harbor, quick query image
技术分享 | 使用 cURL 发送请求
nacos从下载到安装集群的
What is the reason for the suspended animation of the migration tool in the GBase database?
Redis 回击 Dragonfly:13 年后,Redis 的架构依然是同类最佳
4. Generics and Utilities
学长告诉我,大厂MySQL都是通过SSH连接的
极域Killer 1.0代码
[贴装专题] 视觉贴装平台与贴装流程介绍
诡秘番外:在现代