C语言头文件下载迅雷,[C语言] 基于GStreamer编写Mp3播放器
#include #include
//消息处理函数
static gboolean bus_call(GstBus * bus, GstMessage *msg, gpointer data)
{
GMainLoop*loop = (GMainLoop *) data;switch(GST_MESSAGE_TYPE(msg))
{caseGST_MESSAGE_EOS:
g_print("End of stream\n");
g_main_loop_quit(loop);break;caseGST_MESSAGE_ERROR:
{
gchar*debug;
GError*error;
gst_message_parse_error(msg,&error, &debug);
g_free(debug);
g_printerr("ERROR:%s\n", error->message);
g_error_free(error);
g_main_loop_quit(loop);break;
}default:break;
}returnTRUE;
}int main(int argc, char *argv[])
{
GMainLoop*loop;
GstElement*pipeline, *source, *decoder, *sink; //定义组件
GstBus *bus;
gst_init(&argc, &argv);
loop= g_main_loop_new(NULL, FALSE); //创建主循环,在执行 g_main_loop_run后正式开始循环
if (argc != 2)
{
g_printerr("Usage:%s \n", argv[0]);return -1;
}//创建管道和组件
pipeline = gst_pipeline_new("audio-player");
source= gst_element_factory_make("filesrc", "file-source");
decoder= gst_element_factory_make("mad", "mad-decoder");
sink= gst_element_factory_make("autoaudiosink", "audio-output");if (!pipeline || !source || !decoder || !sink)
{
g_printerr("One element could not be created.Exiting.\n");return -1;
}//设置source的location参数,即文件地址
g_object_set(G_OBJECT(source), "location", argv[1], NULL);//得到管道的消息总线
bus =gst_pipeline_get_bus(GST_PIPELINE(pipeline));//添加消息监视器
gst_bus_add_watch(bus, bus_call, loop);
gst_object_unref(bus);//把组件添加到管道中.管道是一个特殊的组件,可以更好的让数据流动
gst_bin_add_many(GST_BIN(pipeline), source, decoder, sink, NULL);//依次连接组件
gst_element_link_many(source, decoder, sink, NULL);//开始播放
gst_element_set_state(pipeline, GST_STATE_PLAYING);
g_print("Running\n");//开始循环
g_main_loop_run(loop);
g_print("Returned,stopping playback\n");
gst_element_set_state(pipeline, GST_STATE_NULL);
gst_object_unref(GST_OBJECT(pipeline));return 0;
}
C语言头文件下载迅雷,[C语言] 基于GStreamer编写Mp3播放器相关推荐
- 基于SDL的mp3播放器
基于SDL的mp3播放器 SDL虽然本身提供播放音乐都功能但是不好用,SDL_mixer为SDL提供了快捷的音乐播放功能.但是SDL_mixer本身只能播放wav格式的音乐,并不能播放mp3,为了能完 ...
- 基于QT实现Mp3播放器(代码部分)
前言 最近有一个课程实验,利用window上的API接口实现MP3播放器. 突发奇想,在linux下用相关接口做一个MP3播放器.最先的打算是完全使用纯C写的,但后来感觉编写调试实在费劲.于是 ...
- 基于QT实现Mp3播放器(理论论述部分)
前言 最近有一个课程实验,利用window上的API接口实现MP3播放器. 突发奇想,在linux下用相关接口做一个MP3播放器.最先的打算是完全使用纯C写的,但后来感觉编写调试实在费劲.于是 ...
- C语言头文件下载迅雷,LLVM汇编|clang llvm(C语言编译器)下载v3.4 免费版 - 欧普软件下载...
LLVM汇编是一款免费的构架编译器框架系统,采用C++编写而来,软件采用现代化的设计,和语言无关的中间代码,方便的进行编程语言的优化编译工作.此外小编还提供了LLVM安装教程,有需要的朋友赶快下载吧! ...
- 基于Stm32的MP3播放器设计与实现
原创博文,转载请注明出处 这是我高级电子技术试验课做的作业,拿来共享一下.项目在安福莱例程基础之上进行的功能完善,里面的部分内容可参考安福莱mp3例程.当然用的板子也是安福莱的板子,因为算起来总共做了 ...
- 基于QT的mp3播放器设计
1.首先在ui中画出两个新建项,分别命名为OpenAction和DeleteAction,并拖到头部. 2. 选择转到槽. 3.选择table weight 4.选择转到槽里的double 5.mai ...
- 远程WEB控制MP3播放器设计(基于mini2440)
网上有很多 基于mini2440的MP3播放器设计的资料,多是按键控制,这里博主做了些轻微改动,利用远程WEB来控制MP3播放,具体怎么实现,下面会给出,大家先看看效果: WEB界面: 后台运行: 因 ...
- 基于嵌入式ARM的mp3播放器的设计
一. 设计题目:基于ARM的mp3播放器的设计 二. 课程设计教学目的: 1.了解并掌握系统电路的一般设计方法,具备初步的独立设计能力: 2.掌握Unix/Linux系统原理: ...
- 纯前端语言编写音乐播放器
纯前端语言编写音乐播放器 html代码 index.html <!DOCTYPE html> <html lang="en"><head>< ...
最新文章
- python 用twisted 问题 zope.interface
- 扒一扒搜索引擎是如何工作的?
- 洛谷P4364 [九省联考2018]IIIDX(线段树)
- @async方法不调用了_在Spring中使用Future对象调用Async方法调用
- 一般拦截器 serviceImpl部分
- 不会配置HTTPS?给我5分钟,手把手教你
- View、Text、Button的drawableLeft左侧图片自定义大小
- 计算机创建文档教案,计算机基础知识教案
- Kubernetes 介绍
- html css 书签,CSS实现书签图案的效果
- python 分词器比较
- Vue html转word
- python get请求下载excel,前端开发,使用get和post方式下载excel表格
- yolo极大抑制_Pytorch从0开始实现YOLO V3指南 part4——置信度阈值和非极大值抑制...
- MySQL-次日留存率问题
- 原滴滴副总裁叶杰平加盟贝壳找房,任首席科学家,用AI帮你找房
- 计算机二级落户上海加分,上海落户哪些重点单位加分
- 720phi10p 和 720p有什么区别_很多人都在都使用视频采集卡,那视频采集卡有几种?有什么特点和区别?...
- AI基础:自然语言处理基础之序列模型
- 推荐安全且匿名的邮箱 ProtonMail -- PGP算法
热门文章
- thinkpad x系列电脑安装iOS虚拟开发环境:mac os 10.8.4 xcode4.6.3 vmware9
- Photoshop CS4 磁性套索工具
- 高等数学(第七版)同济大学 总习题十 (前6题)个人解答
- UESTC 1599 wtmsb 优先队列(最小值优先)
- 测试CSDN的博客功能好不好用——YUM安装Nginx或源码安装Nginx
- Unity中减少VR晕眩症的实用技术(Yanlz+Unity+XR+VR+AR+MR+SteamVR+晕眩症+征兆冲突理论+视野+帧速+相对运动错觉+光场VR+立钻哥哥+==)
- QQ邮箱停运,如何使用网易163邮箱实现邮件发送。
- 2019最近计算机毕业设计-题目汇总大全-系列1
- Linux操作系统中进程的七种状态
- 怎么压缩jpg图片的大小,图片压缩的四个方法