#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播放器相关推荐

  1. 基于SDL的mp3播放器

    基于SDL的mp3播放器 SDL虽然本身提供播放音乐都功能但是不好用,SDL_mixer为SDL提供了快捷的音乐播放功能.但是SDL_mixer本身只能播放wav格式的音乐,并不能播放mp3,为了能完 ...

  2. 基于QT实现Mp3播放器(代码部分)

    前言     最近有一个课程实验,利用window上的API接口实现MP3播放器. 突发奇想,在linux下用相关接口做一个MP3播放器.最先的打算是完全使用纯C写的,但后来感觉编写调试实在费劲.于是 ...

  3. 基于QT实现Mp3播放器(理论论述部分)

    前言     最近有一个课程实验,利用window上的API接口实现MP3播放器. 突发奇想,在linux下用相关接口做一个MP3播放器.最先的打算是完全使用纯C写的,但后来感觉编写调试实在费劲.于是 ...

  4. C语言头文件下载迅雷,LLVM汇编|clang llvm(C语言编译器)下载v3.4 免费版 - 欧普软件下载...

    LLVM汇编是一款免费的构架编译器框架系统,采用C++编写而来,软件采用现代化的设计,和语言无关的中间代码,方便的进行编程语言的优化编译工作.此外小编还提供了LLVM安装教程,有需要的朋友赶快下载吧! ...

  5. 基于Stm32的MP3播放器设计与实现

    原创博文,转载请注明出处 这是我高级电子技术试验课做的作业,拿来共享一下.项目在安福莱例程基础之上进行的功能完善,里面的部分内容可参考安福莱mp3例程.当然用的板子也是安福莱的板子,因为算起来总共做了 ...

  6. 基于QT的mp3播放器设计

    1.首先在ui中画出两个新建项,分别命名为OpenAction和DeleteAction,并拖到头部. 2. 选择转到槽. 3.选择table weight 4.选择转到槽里的double 5.mai ...

  7. 远程WEB控制MP3播放器设计(基于mini2440)

    网上有很多 基于mini2440的MP3播放器设计的资料,多是按键控制,这里博主做了些轻微改动,利用远程WEB来控制MP3播放,具体怎么实现,下面会给出,大家先看看效果: WEB界面: 后台运行: 因 ...

  8. 基于嵌入式ARM的mp3播放器的设计

    一.       设计题目:基于ARM的mp3播放器的设计 二.       课程设计教学目的: 1.了解并掌握系统电路的一般设计方法,具备初步的独立设计能力: 2.掌握Unix/Linux系统原理: ...

  9. 纯前端语言编写音乐播放器

    纯前端语言编写音乐播放器 html代码 index.html <!DOCTYPE html> <html lang="en"><head>< ...

最新文章

  1. python 用twisted 问题 zope.interface
  2. 扒一扒搜索引擎是如何工作的?
  3. 洛谷P4364 [九省联考2018]IIIDX(线段树)
  4. @async方法不调用了_在Spring中使用Future对象调用Async方法调用
  5. 一般拦截器 serviceImpl部分
  6. 不会配置HTTPS?给我5分钟,手把手教你
  7. View、Text、Button的drawableLeft左侧图片自定义大小
  8. 计算机创建文档教案,计算机基础知识教案
  9. Kubernetes 介绍
  10. html css 书签,CSS实现书签图案的效果
  11. python 分词器比较
  12. Vue html转word
  13. python get请求下载excel,前端开发,使用get和post方式下载excel表格
  14. yolo极大抑制_Pytorch从0开始实现YOLO V3指南 part4——置信度阈值和非极大值抑制...
  15. MySQL-次日留存率问题
  16. 原滴滴副总裁叶杰平加盟贝壳找房,任首席科学家,用AI帮你找房
  17. 计算机二级落户上海加分,上海落户哪些重点单位加分
  18. 720phi10p 和 720p有什么区别_很多人都在都使用视频采集卡,那视频采集卡有几种?有什么特点和区别?...
  19. AI基础:自然语言处理基础之序列模型
  20. 推荐安全且匿名的邮箱 ProtonMail -- PGP算法

热门文章

  1. thinkpad x系列电脑安装iOS虚拟开发环境:mac os 10.8.4 xcode4.6.3 vmware9
  2. Photoshop CS4 磁性套索工具
  3. 高等数学(第七版)同济大学 总习题十 (前6题)个人解答
  4. UESTC 1599 wtmsb 优先队列(最小值优先)
  5. 测试CSDN的博客功能好不好用——YUM安装Nginx或源码安装Nginx
  6. Unity中减少VR晕眩症的实用技术(Yanlz+Unity+XR+VR+AR+MR+SteamVR+晕眩症+征兆冲突理论+视野+帧速+相对运动错觉+光场VR+立钻哥哥+==)
  7. QQ邮箱停运,如何使用网易163邮箱实现邮件发送。
  8. 2019最近计算机毕业设计-题目汇总大全-系列1
  9. Linux操作系统中进程的七种状态
  10. 怎么压缩jpg图片的大小,图片压缩的四个方法