GStreamer实现MP3音频播放

源代码:

与ogg格式音频不一样,mp3格式数据没有多路复用,直接解析就行,而ogg需要一个分路器来实现多路复用数据分离。

因此可直接用下面两行代码对元数据进行解析和解码

再用转流器输出到可用音频设备就行。

另一个需要提到的与ogg音频播放代码有差别的是:

处理mp3的管道 (pipeline) 中,各个元素直接添加到管道中进行链接即可,而不需要像处理ogg那样,监听分离器产生的pad-added事件,再调用回调函数链接分离器和解码器。

因为mp3没有多路复用,mp3解析器(mpegaudioparse)生成的元素,其pad可用性属于always pad,一直存在且只有单个,并不属于ogg格式下的dynamic pad(含有两个pad)。