gstreamer简易插件实现wma,mp3,mpga,rm的播放
时间:2011-08-17
来源:互联网
本身的框架沿用了网上的MP3播放的程序,修改了一些地方。
增加了add_pad:
[:]
static void
add_pad (GstElement *element ,GstPad *pad , gpointer data){
gchar *name;
GstElement *sink=(GstElement*)data;
name=gst_pad_get_name(pad);
gst_element_link_pads(element,name,sink,"sink");
g_free(name);
}
[:]
然后在主程序后面的link也有一些更改:
[:]
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);
g_signal_connect(decoder,"pad-added",G_CALLBACK(add_pad),sink);
if(! gst_element_link(source,decoder)){
g_warning("link source to decoder failed");
}
gst_element_set_state(pipeline,GST_STATE_PLAYING);
g_print("Running...\n");
g_main_loop_run(loop);
[:]
虽然说实现了,这几种音频的播放,但是对于有些东西还是有一些不解,就是decodebin
的用法,为什么不能直接LINK;
用gst-inspect 看了一下他的一些相关信息,请问是不是decodebin是在element的bin之下,
而其他的一些例如filesrc直接就存在于element下面,所以才连接不上呢。还是什么其他的原因。
百思不得其解,本人纯属菜鸟,刚接触gstreamer不久,请gstreamer高人指点。
增加了add_pad:
[:]
static void
add_pad (GstElement *element ,GstPad *pad , gpointer data){
gchar *name;
GstElement *sink=(GstElement*)data;
name=gst_pad_get_name(pad);
gst_element_link_pads(element,name,sink,"sink");
g_free(name);
}
[:]
然后在主程序后面的link也有一些更改:
[:]
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);
g_signal_connect(decoder,"pad-added",G_CALLBACK(add_pad),sink);
if(! gst_element_link(source,decoder)){
g_warning("link source to decoder failed");
}
gst_element_set_state(pipeline,GST_STATE_PLAYING);
g_print("Running...\n");
g_main_loop_run(loop);
[:]
虽然说实现了,这几种音频的播放,但是对于有些东西还是有一些不解,就是decodebin
的用法,为什么不能直接LINK;
用gst-inspect 看了一下他的一些相关信息,请问是不是decodebin是在element的bin之下,
而其他的一些例如filesrc直接就存在于element下面,所以才连接不上呢。还是什么其他的原因。
百思不得其解,本人纯属菜鸟,刚接触gstreamer不久,请gstreamer高人指点。
作者: gaoshanzhishui 发布时间: 2011-08-17
先顶一个,有个别的wma文件播放时会出现断续的情况,但是用Audacious播放器播放就很连续,是不是Audacious有自带的数据处理功能呢。
作者: gaoshanzhishui 发布时间: 2011-08-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28