应用Phonon框架实质上分4个部分,你的程序,Phonon库,Phonon后端插件(phonon_backend),真正的后端。 Phonon其实什么都不干,他只是提供了一套API接口,这套接口可以给你的程序调用,同时也是给编写后端插件提供一个规范。

经过几天的尝试,发现安装最方便的模式是:
Phonon:运用qt自带的phonon生成。
Phonon后端插件(phonon_backend):使用phonon_mplayer
后端:使用mplayer播放器。

妥善运用QT4.8.6工具,实现起来就会比较简单。
几个注意点:
1、其中涉及到一些qmake的过程,一定要正确指定你想使用的编译器的qmake工具,如果直接qmake,将会使用系统自带的qmake。
2、注意库文件的依赖关系。
phonon-mplayer源代码下载的传送门:phonon-mplayer下载

一、安装获取Phonon的库文件

最简单的方法是,从QT自带的线程的源码中编译产生。
我用的是QT4.8.6。
QT4.8.6的源代码QT4.8.6下载。

#tar -zxvf qt-everywhere-opensource-src-4.8.6-tar.gz
#cd qt-everywhere-opensource-src-4.8.6

phonon的源代码的.pro文件在根目录的 src/phonon 文件夹下,代码不在这个目录下,不过不妨碍,这时候如果直接qmake,是会失败的,会提示缺少一些依赖关系,因此,为了免除这些烦恼,我的做法是,先把整个qt4.8.6都重新编译一编,在这次编译中,配置文件中配置不编译phonon,如果选择phonon,可能会失败,即配置为-no-phonon。别的配置请根据需要来,具体的qt4.8.6的编译方法,在之前的文章中介绍过,不再赘述。
然后这时候,进入phonon的文件夹。

#cd src/phonon
#make
#make install//生成了MIPS可用的phonon的相关库文件

phonon的库文件生成目录是在你刚编译的qt4.8.6的目录下面的lib文件夹下。
libphonon.la
libphonon.prl
libphonon.so
libphonon.so.4
libphonon.so.4.4
libphonon.so.4.4.0

二、生成phonon-mplayer的后端插件

#tar -zxvf phonon-mplayer.tar.gz
#cd phonon-mplayer
#cd mplayer
#/opt/qt-4.8.6-phonon/bin/qmake
//用第一步中,刚编译qt4.8.6生成的结果中的bin文件夹下的qmake进行qmake操作。会发现这个目录下多了一个Makefile文件,你可以打开看下,里面已经选择了mipsel的编译器。
#make

这时候在这个目录下,有一个叫phonon_backend的文件夹,里面已经生成了一个libphonon_mplayer.so的库。将这个文件夹,整个的复制到qt-4.8.6-phonon中的plugins目录下。

#cp -rf phonon_backend /opt/qt-4.8.6-phonon/plugins/

三、将库文件移植到开发板中

将qt-4.8.6-phonon中的lib及plugins两个文件夹移植到龙芯1B中,并将其添加到环境变量,移植过程不赘述。

四、编译mplayer

依次编译libmad,mpg123,zlib,最后编译mplayer,直接上配置,不赘述。
4.1 编译libmad

#./configure --host=mipsel-linux
--prefix=/home/loongson/tools/mplayer/install
CC=mipsel-linux-gcc
--enable-fpm=mips
--enable-static
--disable-shared
--disable-debugging
--enable-speed
--enable-sso
#make
#make install

编译libmad,还有别的问题出现,在之前一篇文章中已经讨论过,不赘述。
4.2 编译mpg123

#./configure CC=mipsel-linux-gcc
--host=mipsel-linux
--target=mips
--prefix=/home/loongson/tools/mplayer/install
--with-cpu=generic_nofpu
#make
#make install

4.3 编译zlib

#./configure --prefix=/home/loongson/tools/mplayer/install
#vi Makefile
CC=mipsel-linux-gcc
LDSHARED=mipsel-linux-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.map
CPP=mipsel-linux-gcc -E
AR=mipsel-linux-ar rc
RANLIB=mipsel-linux-ranlib
#make
#make install

4.4 编译mplayer

#./configure --disable-mencoder --disable-live --disable-mp3lib --disable-win32dll --disable-dvb --disable-dvdread --disable-dvdnav --disable-ivtv \
--enable-fbdev \
--disable-sdl \
--enable-ossaudio \
--cc=mipsel-linux-gcc --host-cc=gcc --target=mips --enable-cross-compile \
--prefix=/home/loongson/tools/mplayer/install \
--extra-ldflags="-L/home/loongson/tools/mplayer/install/lib/" \
--extra-cflags="-I/home/loongson/tools/mplayer/install/include/" \
--disable-debug \
--disable-mad \
--disable-static
#vi Makefile  //配置文件需要修改一处内容
//修改Makefile文件中的,$(INSTALL) -m 755 $(INSTALLSTRIP) $< $(BINDIR),把 $(INSTALLSTRIP) 去掉
#make
#make install

这时候,就在/home/loongson/tools/mplayer/install目录下生成了相关的库文件及可执行文件,移动到移动到开发板,并将库文件添加到环境变量。

龙芯1B核心板QT4环境下,phonon+phonon_mplayer+mplayer,实现音频控制播放相关推荐

  1. 龙芯1B核心板,内核编译方法:实现usb转串口,即pl2303驱动的模块化安装使用

    龙芯1B核心板,内核编译方法,以usb转串口的方法为例 usb转串口的驱动,惯例使用的是pl2303驱动,在龙芯1B中也不例外,龙芯1B中使用的内核版本号是linux3.18,其中本身就带有pl230 ...

  2. 龙芯LS1C300B核心板设计

    龙芯LS1C300B核心板设计 硬件设计 核心板介绍 软件设计 硬件设计 ps.本核心板属于本人的研究生毕业设计的一部分. 核心板主要参考龙芯开源的智龙开发板进行设计,设计很简单.由于龙芯的LS1C3 ...

  3. 迅为龙芯2K1000开发板Linux环境变量

    1 环境变量 环境变量是系统预设值的参数. Linux 是一个多用户的操作系统, 所以每一个用户也都有自己的环境变量. 举例: 比如我们之前学习的命令不管在哪个路径下输入, 都是可以执行成功的, 因为 ...

  4. 迅为龙芯2K1000核心板国产Linux工业板卡适用于工控电力能源行业方案

    龙芯 2k1000 采用 40nm 工艺,片内集成 2 个 GS264 处理器核,主频 1GHz,64 位 DDR3 控制器,以及各种系统 IO 接口. 商业级参数 CPU:龙芯2K1000双核商业级 ...

  5. 龙芯linux开发板,龙芯1b开发板环境及系统搭建

    建立交叉编译环境 交叉编译工具包:gcc-4.3-ls232-softfloat.tar.gz 1.解压到/opt文件夹 sudo tar zxvf gcc-4.3-ls232-softfloat.t ...

  6. 龙芯linux开发板,龙芯1B开发板移植SQLite 3.6.20

    附注:在sqlite 版本为大于3.6.20无需参考本博客 目标平台:loongson 1B 目标开发板架构:mipsel架构 编译平台:Ubuntu13.04 交叉工具链:gcc-4.3-ls232 ...

  7. 【国产之光】:龙芯1B(嵌入式方向)

    自从嵌入式1B的出产,我就开始了解了,毕竟是嵌入式方向的工程师,不管什么岗位都爱国,不过的确国产的一出自然想去看看国产之光,也希望祖国芯片事业越来越好.(作为一名博主当然说这些就像说废话)那么我们开始 ...

  8. 【龙芯1B】:74HC595数码管或74HC138数码管程序开发

    学习目标:解决龙芯1B:74HC595或74HC138数码管显示问题 首先我们要知道数码管的原理:以74HC595为例,74HC595是具有三态输出功能(即具有高电平.低电平和高阻抗三种输出状态)的门 ...

  9. 龙芯1b(LS1B200)使用LVGL7.0.1组件 按钮矩阵 实现简易计算器

    需求:通过按钮点击实现加减乘除的简易计算器. 1.我们使用矩阵按钮(lv_btnmatrix)快速创建布局,文本框(lv_textarea)显示结果. 2.在按钮回调中将点击结果加入文本框上显示. 矩 ...

最新文章

  1. CSP浏览器安全策略备忘
  2. 微信小程序之配置app.json
  3. java写入文件编码格式为ansi_Java读取、写入文件如何解决乱码问题
  4. tushare pro接口_利用tushare获取新闻联播文字稿并制作词云
  5. 2016 大连网赛---Weak Pair(dfs+树状数组)
  6. 拓端tecdat|R语言基于树的方法:决策树,随机森林,Bagging,增强树
  7. 【随感】我觉得,世界上最美好的乐器是钢琴和架子鼓
  8. mariadb 的安装及基本配置
  9. 小程序 自定义气泡框
  10. canvas 角度 弧度 换算
  11. 游戏感:虚拟感觉的游戏设计师指南——第七章 响应的测量方法
  12. Android 自定义按钮button 加图片和两行文字
  13. 安卓手机投屏到电脑的问题可以通过一个神器解决
  14. 【Ubuntu】如何在Ubuntu系统上设置好看的动态壁纸(Komorebi)
  15. MATLAB怎么生成一个周期信号,matlab产生方波脉冲和周期性方波信号
  16. 使用JS模拟键盘、鼠标操作
  17. 专题介绍是什么意思_【专题设计】含水层、潜水层、承压含水层都是什么意思?各种地下水资源介绍!满满的全是考点!...
  18. 多张图片合成一份PDF(不使用其他软件)
  19. java自动化测试语言高级之发送邮件
  20. 悟空CRM系统项目实测

热门文章

  1. 计算机视觉应用(二)疲劳检测之打哈欠
  2. 有什么好用的免费不限页数的PDF转PPT工具?
  3. AppScan安全问题解决方案
  4. 11. 排序(Sorting)
  5. 微信无痕清粉分析过程-附源码地址
  6. APP乱象丛生致手机危机四伏
  7. 软件测试笔记(十二)- 测试文档
  8. Tarde破解版使用, 悬赏提问
  9. 连接数据库实现查询员工信息
  10. 学习andriod开发之 丰富文本编辑 Span类的使用