简介 Gstreamer是一个支持Windows,Linux,Android, iOS的跨平台的多媒体框架,应用程序可以通过管道(Pipeline)的方式,将多媒体处理的各个步骤串联起来,达到预期的效果。每个步骤通过元素(Element)基于GObject对象系统通过插件(plugins)的方式实现,方便了各项功能的扩展。
首先通过buildroot 添加 gstreamer 库,配置如图:
编译后在out->host 目录下交叉编译工具链就有了我们接下来编译应用需要的gstreamer 依赖库。 接下来设置环境变量就可以编写一个可以播放音频的应用了。
通过上图脚本就可以编译出一个简单可以播放音频的声音。
应用源码如下:
- #include
- int main (int argc, char *argv[])
- {
- GstElement *pipeline;
- GstBus *bus;
- GstMessage *msg;
- /* Initialize GStreamer */
- gst_init (&argc, &argv);
- /* Build the pipeline */
- pipeline = gst_parse_launch ("playbin uri=file:///audio/1.wav", NULL);
- /* Start playing */
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
- /* Wait until error or EOS */
- bus = gst_element_get_bus (pipeline);
- msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
- GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
- /* Free resources */
- if (msg != NULL)
- gst_message_unref (msg);
- gst_object_unref (bus);
- gst_element_set_state (pipeline, GST_STATE_NULL);
- gst_object_unref (pipeline);
- return 0;
- }
复制代码
验证 通过运行上面脚本已经编译成了 一个简单app。通过图形化工具上传应用到开发板,根据源码中音频文件路径,放置音频文件,接下来直接运行app 就可以通过耳机播放出音频了。
|