我想在linux下面用纯C开发一个具有简单界面的音频播放器,我有了一定的C语言基础和linux基础,如何开始?

我想在linux下面用纯C开发一个具有简单界面的音频播放器,我有了一定的C语言基础和linux基础,如何开始?,第1张

Linux学习起来很自由的,所以你现在需要的是一份源码

Linux下这类的源码很多,比如mplayer。

源码中代码量可能很大,源码中你需要的部分对应你的问题,会有以下相应的代码。

第一步 用C去播放一个音频文件(如MP3)需要一个解码器,因为mp3是一种网络格式,经过压缩的。所以源码中会有encoder,decoder这样的解码器代码,解码出可以直接播放的格式。当然也可以装上别人的播放器内核,这样你只需要一个调用就可以播放了,剩下的就只是界面的开发。

第二步 你可能听说过KDE,GNOME这样的图形界面系统。它们支持的库分别是QT(c++),GTK(C),mplayer用的gtk。这两个库都是跨平台的,你可以把它们想象成MFC。有了这样的库就可以轻松做出界面了。

然后把这两步的代码用数据结构关联起来。点击按钮,回调去调用解码器然后播放,你自己的播放器就成功播放了。

不是要现成得 就是要自己开发了?

从低向高一点点做吧, 调用声卡驱动播放声音,上面解码,做的通用点可以支持多种解码模块,上面应用 *** 作界面,可以是命令行的或者带图形的 *** 作界面....

工作量应该不小的,如果不是学习研究,是做项目的话,建议用楼下的mplayer等开源产品来的稳定、快捷

Amarok、Rhythmox和Banshee都是Linux下很受欢迎的播放器。

1.Audacious

如果你喜欢Winamp的小巧和简洁的外观,那么你一定会喜欢Audacious的。Audacious是Beep Media Player 和XMMS的一个分支。它体积小巧而且有丰富的皮肤可供你选择。同时它也支持Winamp和XMMS的皮肤。

2.Listen Music Player

第一眼看到Listen Music Player(以下简称LMP)是不是觉得它和Rhythmbox很像啊!但在你使用LMP之后,你会发现LMP比Rhthmbox更好用。LMP的外观由三部分组成,左边的面板是播放控制和播放列表,中间的是导航菜单而右边的面板就是显示当前的相关信息。LMP很好的集成了last.fm和ShoutCast。你还可以能过LMP查打歌词,甚至可以能过Wikipedia获取当前播放的歌曲的信息。

3.Quod Libet

作为一个音乐播放器,Quod Libet不会显示过多的信息,它只会显示你想看到的信息。它的界面很简洁,所有你要查看的内容都会在同一个窗口中显示,你可以能过”View”来选择你想查看的信息,包括播放列表、专辑列表、文件系统和网络电台。

Quod Libet内置了Ex falso,能过Ex falso你可以添加、编缉和组织你的MP3无数据,这样可以让人更好的管理你的MP3。尽管Quod Libet没有Amarok或者Bashee那样丰富的特点,但如果你正在找一个可以把你的音乐文件组织起来的播放器,那么Quod Libet就是你要找的。

4.Songbird

Songbird既是一个音乐播放器,也是一个网页浏览器和网络媒体播放器。希望你没有被的我话弄晕了,但这个就是Songbird。Songbird是从Firefox和VLC的代码整合而来的,所以Songbird是一个具有网页浏览功能的桌面音乐播放器。你Firefox一样,Songbird支持标签式浏览和安装插件。当你浏览任何包含了它所支持的多媒体的网站的时候,它会自动在一个独立的面板中列出当前网页中可用的多媒体,方便你下载或者是播放。可以说Songbird继承了VLC大部分甚至是所有的特点,因此Songbird可以播放很多格式的音频/视频。

5. Decibel Audio Player

当与Amarok这样功能强大的软件相比,Decibel Audio Player真得显得有点微小。如果你只安装的基本的Decibel Audio Player,那么它不会支持任何东西,包括可视化、专辑封面、在线音乐播放、podcast等。它唯一可以做的就是播放音乐。如果你只想要一个播放音乐的软件,那么Decibel Audio Player是一个很好的选择。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/9014812.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-24
下一篇2023-04-24

发表评论

登录后才能评论

评论列表(0条)

    保存