龙芯1B核心板QT4环境下,phonon+phonon_mplayer+mplayer,实现音频控制播放
应用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,实现音频控制播放相关推荐
- 龙芯1B核心板,内核编译方法:实现usb转串口,即pl2303驱动的模块化安装使用
龙芯1B核心板,内核编译方法,以usb转串口的方法为例 usb转串口的驱动,惯例使用的是pl2303驱动,在龙芯1B中也不例外,龙芯1B中使用的内核版本号是linux3.18,其中本身就带有pl230 ...
- 龙芯LS1C300B核心板设计
龙芯LS1C300B核心板设计 硬件设计 核心板介绍 软件设计 硬件设计 ps.本核心板属于本人的研究生毕业设计的一部分. 核心板主要参考龙芯开源的智龙开发板进行设计,设计很简单.由于龙芯的LS1C3 ...
- 迅为龙芯2K1000开发板Linux环境变量
1 环境变量 环境变量是系统预设值的参数. Linux 是一个多用户的操作系统, 所以每一个用户也都有自己的环境变量. 举例: 比如我们之前学习的命令不管在哪个路径下输入, 都是可以执行成功的, 因为 ...
- 迅为龙芯2K1000核心板国产Linux工业板卡适用于工控电力能源行业方案
龙芯 2k1000 采用 40nm 工艺,片内集成 2 个 GS264 处理器核,主频 1GHz,64 位 DDR3 控制器,以及各种系统 IO 接口. 商业级参数 CPU:龙芯2K1000双核商业级 ...
- 龙芯linux开发板,龙芯1b开发板环境及系统搭建
建立交叉编译环境 交叉编译工具包:gcc-4.3-ls232-softfloat.tar.gz 1.解压到/opt文件夹 sudo tar zxvf gcc-4.3-ls232-softfloat.t ...
- 龙芯linux开发板,龙芯1B开发板移植SQLite 3.6.20
附注:在sqlite 版本为大于3.6.20无需参考本博客 目标平台:loongson 1B 目标开发板架构:mipsel架构 编译平台:Ubuntu13.04 交叉工具链:gcc-4.3-ls232 ...
- 【国产之光】:龙芯1B(嵌入式方向)
自从嵌入式1B的出产,我就开始了解了,毕竟是嵌入式方向的工程师,不管什么岗位都爱国,不过的确国产的一出自然想去看看国产之光,也希望祖国芯片事业越来越好.(作为一名博主当然说这些就像说废话)那么我们开始 ...
- 【龙芯1B】:74HC595数码管或74HC138数码管程序开发
学习目标:解决龙芯1B:74HC595或74HC138数码管显示问题 首先我们要知道数码管的原理:以74HC595为例,74HC595是具有三态输出功能(即具有高电平.低电平和高阻抗三种输出状态)的门 ...
- 龙芯1b(LS1B200)使用LVGL7.0.1组件 按钮矩阵 实现简易计算器
需求:通过按钮点击实现加减乘除的简易计算器. 1.我们使用矩阵按钮(lv_btnmatrix)快速创建布局,文本框(lv_textarea)显示结果. 2.在按钮回调中将点击结果加入文本框上显示. 矩 ...
最新文章
- CSP浏览器安全策略备忘
- 微信小程序之配置app.json
- java写入文件编码格式为ansi_Java读取、写入文件如何解决乱码问题
- tushare pro接口_利用tushare获取新闻联播文字稿并制作词云
- 2016 大连网赛---Weak Pair(dfs+树状数组)
- 拓端tecdat|R语言基于树的方法:决策树,随机森林,Bagging,增强树
- 【随感】我觉得,世界上最美好的乐器是钢琴和架子鼓
- mariadb 的安装及基本配置
- 小程序 自定义气泡框
- canvas 角度 弧度 换算
- 游戏感:虚拟感觉的游戏设计师指南——第七章 响应的测量方法
- Android 自定义按钮button 加图片和两行文字
- 安卓手机投屏到电脑的问题可以通过一个神器解决
- 【Ubuntu】如何在Ubuntu系统上设置好看的动态壁纸(Komorebi)
- MATLAB怎么生成一个周期信号,matlab产生方波脉冲和周期性方波信号
- 使用JS模拟键盘、鼠标操作
- 专题介绍是什么意思_【专题设计】含水层、潜水层、承压含水层都是什么意思?各种地下水资源介绍!满满的全是考点!...
- 多张图片合成一份PDF(不使用其他软件)
- java自动化测试语言高级之发送邮件
- 悟空CRM系统项目实测