Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示

简介: Qt+MPlayer音乐播放器开发笔记(二):交叉编译MPlayer以及部署到开发板播放演示

前言

  在ubuntu上arm交叉编译MPlayer播放器,并部署到开发板播放音乐。


Demo

  

  

  

  

  


Mplayer

  MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布。此款软件可在各主流操作系统使用,例如Linux和其他类Unix系统、Windows及Mac OS X系统。

  MPlayer基于命令行界面,在各操作系统也可选择安装不同的图形界面。mplayer的另一个大的特色是广泛的输出设备支持。它可以在X11、Xv、DGA、OpenGL、SVGAlib、fbdev、AAlib、DirectFB下工作,且能使用GGI和SDL和一些低级的硬件相关的驱动模式(比如Matrox、3Dfx和Radeon、Mach64、Permedia3)。MPlayer还支持通过硬件MPEG解码卡显示,如DVB 和DXR3与Hollywood+。

  MPlayer的开发始于2000年。最初的作者是 Arpad Gereoffy。MPlayer最初的名字叫"MPlayer - The Movie Player for Linux",不过后来开发者们简称其为"MPlayer - The Movie Player",原因是MPlayer已经不仅可以用于Linux而可以在所有平台上运行。

下载

  最新源码下载地址: http://mplayerhq.hu/design7/news-archive.html

  QQ群:1047134658(点击“文件”搜索“MPlayer”,群内与博文同步更新)


Ubuntu交叉编译Mplayer

步骤一:下载解压

tar xvf MPlayer-1.4.tar.xz

  

步骤二:configure

cd MPlayer-1.4/
./configure \
 --prefix=/home/yang/work/rootfs/mplayer \
 --host-cc=gcc \
 --cc=arm-linux-gnueabihf-9.1.0-gcc \
 --yasm=''

  

步骤三:make,“error impossible constraint in asm”

make -j4

  

  此处,是因为平台的指令集问题,添加平台参数

./configure \
 --prefix=/home/yang/work/rootfs/mplayer \
 --host-cc=gcc \
 --cc=arm-linux-gnueabihf-9.1.0-gcc \
 --yasm='' \
 --target=arm-linux

  

步骤四:make,需要zlib库支撑,引入zlib库

make

  

  zlib库的交叉编译请参照博文《zlib开发笔记(三):zlib库介绍、在ubuntu上进行arm平台交叉编译

  添加交叉编译的zlib库后,添加路径后重新配置:

./configure \
 --prefix=/home/yang/work/rootfs/mplayer \
 --host-cc=gcc \
 --cc=arm-linux-gnueabihf-9.1.0-gcc \
 --yasm='' \
 --target=arm-linux \
 --extra-cflags=-I/home/yang/work/rootfs/zlib-1.2.11/include \
 --extra-ldflags=-L/home/yang/work/rootfs/zlib-1.2.11/lib

  继续make,直至编译完成

  

步骤五:宿主机查看

  直接看mplayer就好了,直接拷贝他,目前只依赖了zlib库。

  

步骤六:部署到开发板

  直接复制目录下的mplayer即可,因为依赖的zlib其实在板子上已经有了,所以此处不用复制库。

步骤七:交叉编译系统上测试

  

arm-linux开发板测试播放

  播放音频文件,如下图:

  

  播放成功!!!

相关文章
|
3月前
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
90 0
|
2月前
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
|
2月前
|
3月前
|
C++
C++ Qt开发:QUdpSocket网络通信组件
QUdpSocket是Qt网络编程中一个非常有用的组件,它提供了在UDP协议下进行数据发送和接收的能力。通过简单的方法和信号,可以轻松实现基于UDP的网络通信。不过,需要注意的是,UDP协议本身不保证数据的可靠传输,因此在使用QUdpSocket时,可能需要在应用层实现一些机制来保证数据的完整性和顺序,或者选择在适用的场景下使用UDP协议。
161 2
Qt开发网络嗅探器02
Qt开发网络嗅探器02
|
3月前
|
存储 运维 监控
Qt开发网络嗅探器01
Qt开发网络嗅探器01
|
3月前
|
网络协议 容器
Qt开发网络嗅探器03
Qt开发网络嗅探器03
|
4月前
|
数据安全/隐私保护 C++ 计算机视觉
Qt(C++)开发一款图片防盗用水印制作小工具
文本水印是一种常用的防盗用手段,可以将文本信息嵌入到图片、视频等文件中,用于识别和证明文件的版权归属。在数字化和网络化的时代,大量的原创作品容易被不法分子盗用或侵犯版权,因此加入文本水印成为了保护原创作品和维护知识产权的必要手段。 通常情况下,文本水印可以包含版权声明、制作者姓名、日期、网址等信息,以帮助识别文件的来源和版权归属。同时,为了增强防盗用效果,文本水印通常会采用字体、颜色、角度等多种组合方式,使得水印难以被删除或篡改,有效地降低了盗用意愿和风险。 开发人员可以使用图像处理技术和编程语言实现文本水印的功能,例如使用Qt的QPainter类进行文本绘制操作,将文本信息嵌入到图片中,
183 1
Qt(C++)开发一款图片防盗用水印制作小工具
|
3月前
【qt】多窗口开发
【qt】多窗口开发
61 0
|
5月前
|
关系型数据库 MySQL 项目管理
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面
数据库大作业——基于qt开发的图书管理系统(四)项目目录的整理与绘制登录页面