{"id":873,"date":"2014-09-20T14:29:43","date_gmt":"2014-09-20T06:29:43","guid":{"rendered":"http:\/\/www.menglanglang.cn\/?p=873"},"modified":"2014-09-20T14:29:43","modified_gmt":"2014-09-20T06:29:43","slug":"gstreamer%e5%9c%a8ubuntu%e4%b8%8a%e7%9a%84%e5%ae%89%e8%a3%85%e5%92%8cmp3%e7%9a%84%e6%92%ad%e6%94%be","status":"publish","type":"post","link":"http:\/\/www.menglanglang.cn\/?p=873","title":{"rendered":"Gstreamer\u5728Ubuntu\u4e0a\u7684\u5b89\u88c5\u548cMP3\u7684\u64ad\u653e"},"content":{"rendered":"<p><strong>Gstreamer<\/strong><strong>\u7b80\u5355\u4ecb\u7ecd\uff1a<\/strong><\/p>\n<p>GStreamer \u4f5c\u4e3a\u6d41\u5a92\u4f53\u5e94\u7528\u6846\u67b6\uff0c\u91c7\u7528\u4e86\u57fa\u4e8e\u63d2\u4ef6\uff08plugin\uff09\u548c\u7ba1\u9053\uff08pipeline\uff09\u7684\u4f53\u7cfb\u7ed3\u6784\uff0c\u6846\u67b6\u4e2d\u7684\u6240\u6709\u7684\u529f\u80fd\u6a21\u5757\u90fd\u88ab\u5b9e\u73b0\u6210\u53ef\u4ee5\u63d2\u62d4\u7684\u7ec4\u4ef6\uff08component\uff09\uff0c\u5e76\u4e14\u5728\u9700\u8981\u7684\u65f6\u5019\u80fd\u591f\u5f88\u65b9\u4fbf\u5730\u5b89\u88c5\u5230\u4efb\u610f\u4e00\u4e2a\u7ba1\u9053\u4e0a\uff0c\u7531\u4e8e\u6240\u6709\u63d2\u4ef6\u90fd\u901a\u8fc7\u7ba1\u9053\u673a\u5236\u8fdb\u884c\u7edf\u4e00\u7684\u6570\u636e\uff0c\u56e0\u6b64\u5f88\u5bb9\u6613\u5229\u7528\u5df2\u6709\u7684\u5404\u79cd\u63d2\u4ef6\u201c\u7ec4\u88c5\u201d\u51fa\u4e00\u4e2a\u529f\u80fd\u5b8c\u5584\u7684\u591a\u5a92\u4f53\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n<p align=\"left\"><strong>\u5728Ubuntu\u4e0a\u5b89\u88c5gstreamer\uff1a<\/strong><\/p>\n<p align=\"left\"><strong>\u5728\u5b89\u88c5\u4e4b\u524d\u9996\u5148\u8981\u8bbe\u7f6e\u4ee3\u7406<\/strong><\/p>\n<p align=\"left\">\u6709\u4e09\u4e2a\u5730\u65b9\uff1a<\/p>\n<p align=\"left\">1 network proxy<\/p>\n<p align=\"left\">2 \u00a0<wbr>Synaptic Package Manager\u91cc\u7684settings<\/wbr><\/p>\n<p align=\"left\">3 \u5728\u547d\u4ee4\u884c\u91cc\u8f93\u5165 gedit\u00a0<wbr>\u00a0etc\/apt\/apt.conf<\/wbr><\/p>\n<p align=\"left\">\u7136\u540e\u5728\u6587\u4ef6\u91cc\u52a0\u5165<\/p>\n<p align=\"left\">Acquire::http::proxy \"http:\/\/student102:student@10.1.243.240:8080\/\";\u8fd9\u91cc\u9762\u7684\u8d26\u53f7\u548c\u5bc6\u7801\u8001\u81ea\u52a8\u5220\u9664\u4e86\uff0c\u5982\u4ee3\u7406\u6709\u95ee\u9898\u5728\u8fdb\u6765\u770b\u770b\u8fd9<\/p>\n<p align=\"left\">\u4e00\u3001\u53bb<a href=\"http:\/\/gstreamer.freedesktop.org\/\">http:\/\/gstreamer.freedesktop.org\/<\/a>\u4e0b\u8f7d\u6e90\u7801\u5305\uff0c\u4e00\u822c\u8981\u5b89\u88c5gstreamer\u4ee5\u4e0b\u6700\u57fa\u672c\u7684\u5305\uff0c\u5206\u522b\u4e0b\u8f7d\uff1a<\/p>\n<p align=\"left\">Gstreamer-0.10.35.tar.bz2<\/p>\n<p align=\"left\">gst-plugins-base-0.10.35.tar.bz2<\/p>\n<p align=\"left\">gst-plugins-good-0.10.30.tar.bz2<\/p>\n<p>\u4e8c\u3001\u5b89\u88c5gstreamer\uff1a<\/p>\n<p>\u89e3\u538b\u540e\uff0c\u8fdb\u5165\u76ee\u5f55\u76f4\u63a5\u6267\u884c.\/configure,\u6b64\u65f6\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff1a<\/p>\n<p>configure: error: Could not find bison<\/p>\n<p>\u51fa\u73b0\u8fd9\u4e2a\u9519\u8bef\uff0c\u8bf4\u660e\u627e\u4e0d\u5230bison\uff0c\u90a3\u4e48\u89e3\u51b3\u65b9\u6848\u4e5f\u5f88\u7b80\u5355\uff0c\u5b89\u88c5bison\u3002<\/p>\n<p>\u89e3\u51b3\u529e\u6cd5\uff1a<\/p>\n<p>administrator@ubuntu:~\/gstreamer-0.10.35$ sudo apt-get install bison<\/p>\n<p>make<\/p>\n<p>make install<\/p>\n<p>cd ..<\/p>\n<p>\u518d\u6b21\u8fd0\u884c.\/configure\uff0c\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff1a<\/p>\n<p align=\"center\">administrator@ubuntu:~\/gstreamer-0.10.35$ .\/configure<\/p>\n<p align=\"center\">....<\/p>\n<p align=\"center\">checking for bison... \/usr\/bin\/bison<\/p>\n<p align=\"center\">checking bison version 2.4.1 &gt;= 1.875... Yes<\/p>\n<p align=\"center\">checking for flex... No<\/p>\n<p align=\"center\">configure: error: Could not find flex<\/p>\n<p>\u89e3\u51b3\u529e\u6cd5\uff0c\u540c\u4e0a\u9762\u5b89\u88c5bison\u7684\u8fc7\u7a0b\uff1a<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/gstreamer-0.10.35$ sudo apt-get install flex<\/p>\n<p>make<\/p>\n<p>make install<\/p>\n<p>cd ..<\/p>\n<p>\u518d\u6b21\u8fd0\u884c.\/configure\uff0c\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff1a<\/p>\n<p align=\"center\">checking for GLIB... No<\/p>\n<p align=\"center\">configure: No package 'glib-2.0' found<\/p>\n<p align=\"center\">No package 'gobject-2.0' found<\/p>\n<p align=\"center\">No package 'gthread-2.0' found<\/p>\n<p align=\"center\">No package 'gmodule-no-export-2.0' found<\/p>\n<p align=\"center\">configure: error: This package requires GLib &gt;= 2.22 to compile.<\/p>\n<p>\u89e3\u51b3\u529e\u6cd5\uff1a<\/p>\n<p>administrator@ubuntu:~\/gstreamer-0.10.35$ sudo apt-get install glib-2.0<\/p>\n<p>make<\/p>\n<p>make install<\/p>\n<p>cd ..<\/p>\n<p>\u518d\u6b21\u8fd0\u884c.\/configure\uff0c\u51fa\u73b0\u5982\u4e0b\u9519\u8bef\uff1a<\/p>\n<p>configure: error: *** Working zlib library and headers not found ***<\/p>\n<p>\u89e3\u51b3\u529e\u6cd5\uff1a<\/p>\n<p>&nbsp;<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/glib-2.29.4$ sudo apt-get install zlib1g<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/glib-2.29.4$ .\/configure<br \/>\nchecking for a BSD-compatible install... \/usr\/bin\/install -c<br \/>\n...<br \/>\nconfigure: error: Package requirements (libffi &gt;= 3.0.0) were not met:<\/p>\n<p>No package 'libffi' found<\/p>\n<p>Consider adjusting the PKG_CONFIG_PATH environment variable if you<br \/>\ninstalled software in a non-standard prefix.<\/p>\n<p>Alternatively, you may set the environment variables LIBFFI_CFLAGS<br \/>\nand LIBFFI_LIBS to avoid the need to call pkg-config.<br \/>\nSee the pkg-config man page for more details.<\/p>\n<p>&nbsp;<\/p>\n<p>\u5b89\u88c5libffi<\/p>\n<p>&nbsp;<\/p>\n<p>\u9519\u8bef\u89e3\u51b3<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/glib-2.29.4$ .\/configure<br \/>\n...<br \/>\nchecking for msgfmt... no<br \/>\nconfigure: error:<br \/>\n*** You must have either have gettext support in your C library, or use the<br \/>\n*** GNU gettext library. (http:\/\/www.gnu.org\/software\/gettext\/gettext.html<\/p>\n<p>\u5b89\u88c5gettex<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/glib-2.29.4$ sudo apt-get install gettex<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/glib-2.29.4$\u00a0<wbr>\u00a0.\/configure<br \/>\n\u65e0\u9519\u8bef\u3002<br \/>\nadministrator@ubuntu:~\/\u4e0b\u8f7d\/glib-2.29.4$\u00a0<wbr>\u00a0make &amp; sudo make install<\/wbr><\/wbr><\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/gstreamer-0.10.35$ .\/configure<br \/>\n\u3002\u3002\u3002\u3002<br \/>\nchecking for XML... no<br \/>\nno<br \/>\nconfigure: error:<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Need libxml2 and development headers\/files to build GStreamer.<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p><wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0You can do without libxml2 if you pass --disable-loadsave to<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0configure, but that breaks ABI, so don't do that unless you<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0are building for an embedded setup and know what you are doing.<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p>&nbsp;<\/p>\n<p>\u5b89\u88c5libxml2<\/p>\n<p>&nbsp;<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/gstreamer-0.10.35$ sudo apt-get install libxml2<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u89e3\u538blibxml2-2.7.7.tar.gz<br \/>\nadministrator@ubuntu:~\/\u4e0b\u8f7d\/libxml2-2.7.7$ .\/configure<br \/>\n\u51fa\u9519\uff1a<br \/>\nconfig.status: executing libtool commands<br \/>\n\/bin\/rm: cannot remove `libtoolT': No such file or directory<br \/>\nDone configuring<br \/>\nadministrator@ubuntu:~\/\u4e0b\u8f7d\/libxml2-2.7.7$ make &amp; sudo make install<\/p>\n<p>administrator@ubuntu:~\/\u4e0b\u8f7d\/gstreamer-0.10.35$ .\/configure<\/p>\n<p>&nbsp;<\/p>\n<p>\u5b89\u88c5\u5b8c\u6210<\/p>\n<p>Configuration<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Version\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: 0.10.35<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Source code location\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: .<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Prefix\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: \/usr\/local<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Compiler\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: gcc -std=gnu99<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Package name\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: GStreamer source release<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Package origin\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: Unknown package origin<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p><wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Documentation (manuals)\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: no<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Documentation (API)\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: no<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p><wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Debug Logging\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Pipeline XML load\/save\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Command-line parser\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Option parsing in gst_init : yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Tracing subsystem\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Allocation tracing\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Plugin registry\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Plugin support\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Network support\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Unit testing support\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p><wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Debug\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Profiling\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: no<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p><wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Building examples\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Building test apps\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0: yes<br \/>\n<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0Building tests that fail\u00a0<wbr>\u00a0<wbr>\u00a0: no<\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>\u5728\u5b89\u88c5\u5b8cgstreamer\u540e\uff0c\u5b89\u88c5\u5176\u4ed6plugins\u4e4b\u524d\u8981\u8bbe\u7f6ePKG_CONFIG_PATH\u6b63\u786e\u3002<\/p>\n<p>&nbsp;<\/p>\n<p align=\"left\">3.\u5b89\u88c5gst-plugins-base\uff1a<br \/>\n\u5b89\u88c5\u524d\u8981\u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u7531\u4e8egstreamer\u662f\u9ed8\u8ba4\u5b89\u88c5\uff0c\u6ca1\u6709\u8bbe\u7f6e--prefix\uff0c\u6240\u4ee5\u5c06export<br \/>\nPKG_CONFIG_PATH=\/usr\/local\/lib\/pkgconfig:$PKG_CONFIG_PATH\u5c31\u884c\u4e86<br \/>\n.\/configure,\u63d0\u793a\u7f3a\u5c11liboil\uff0c\u53bb<a href=\"https:\/\/launchpad.net\/ubuntu\/+source\/liboil\/0.3.14\">https:\/\/launchpad.net\/ubuntu\/+source\/liboil\/0.3.14<\/a><\/p>\n<p align=\"left\">\u4e5f\u53ef\u4ee5\u5728 gedit \/etc\/profile \u672b\u5c3e \u52a0\u4e0a\u4e0b\u9762\u7684\u8bed\u53e5<\/p>\n<p align=\"left\">export PKG_CONFIG_PATH=\/usr\/lib\/pkgconfig:\/usr\/local\/lib\/pkgconfig:$PKG_CONFIG_PATH<\/p>\n<p align=\"left\">export<\/p>\n<p align=\"left\">LD_LIBRARY_PATH=\/usr\/lib:\/usr\/local\/lib:$LD_LIBRARY_PATH<\/p>\n<p align=\"left\">-3\u4e0b\u8f7d\u5b89\u88c5\u5373\u53ef<br \/>\nmake<br \/>\nmake install<\/p>\n<p align=\"left\">\u00a0<wbr><\/wbr><\/p>\n<p align=\"left\">4.\u5b89\u88c5gst-plugins-good\uff1a<br \/>\n.\/configure<br \/>\nmake<br \/>\nmake install<\/p>\n<p align=\"left\">\u8fd9\u91cc\u6709\u53ef\u80fd \u5728 Synaptic Package Manager\u91cc\u4e0b\u8f7dG++<\/p>\n<p align=\"left\">\u5230\u6b64\u53ef\u4ee5\u7528gst-launch -vm audiotestsrc ! audioconvert ! audioresample ! osssink<br \/>\n\u6d4b\u8bd5\u80fd\u5728\u6768\u58f0\u5668\u91cc\u542c\u5230\u8702\u9e23\u97f3<\/p>\n<p>\u00a0<wbr><\/wbr><\/p>\n<p align=\"left\">\u6ce8\u610f\uff1a\u603b\u4e4b\uff0c\u5728\u5b89\u88c5\u8fc7\u7a0b\u4e2d\uff0c\u7f3a\u4ec0\u4e48\u5c31apt-get install,\u627e\u4e0d\u5230\u5c31\u53bb\u7f51\u4e0a\u4e0b\u8f7d\u5b89\u88c5\u3002<\/p>\n<p align=\"left\">5.\u7f16\u5199\u4ee3\u7801\u6d4b\u8bd5,\u6700\u7b80\u5355\u7684mp3\u64ad\u653e\uff1a<br \/>\na.\u9700\u8981\u4f7f\u7528mad\u89e3\u7801\u63d2\u4ef6\uff0c\u56e0\u6b64\u9996\u5148\u8981\u5b89\u88c5libid3tag0-dev\u548clibmad0-dev<br \/>\n<wbr>apt-get install\u00a0<wbr>liblid3tag0-dev<br \/>\n<wbr>apt-get install libmad0-dev<\/wbr><\/wbr><\/wbr><\/p>\n<p>b.\u63a5\u7740\u5b89\u88c5gstreamer0.10-plugins-ugly\u624d\u4f1a\u5b89\u88c5\u4e0amad<\/p>\n<p>&nbsp;<\/p>\n<p><strong>\u8fd9\u4e0a\u9762\u4e09\u4e2a\u5305\u5f97\u6309\u987a\u5e8f\u5b89\u88c5\uff0c\u8981\u4e0d\u53ef\u80fd\u51fa\u95ee\u9898<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>\u7f16\u5199.c<\/p>\n<p align=\"left\">#include\u00a0<wbr>&lt;gst\/gst.h&gt; \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#include\u00a0<wbr>&lt;gtk\/gtk.h&gt; \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#define\u00a0<wbr>GTK_WINDOW\u00a0<wbr>0 \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">static\u00a0<wbr>GtkWidget\u00a0<wbr>*window;\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">static\u00a0<wbr>gboolean\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">delete_event(GtkWidget\u00a0<wbr>*widget,\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>GdkEvent\u00a0<wbr>*event,\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gpointer\u00a0<wbr>data)\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">{\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>return\u00a0<wbr>FALSE;\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">}\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">static\u00a0<wbr>void\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">destroy(GtkWidget\u00a0<wbr>*widget,\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gpointer\u00a0<wbr>data)\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">{\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gtk_main_quit\u00a0<wbr>();\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">}\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">static\u00a0<wbr>void\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">window_create(void)\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">{\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>window\u00a0<wbr>=\u00a0<wbr>gtk_window_new\u00a0<wbr>(GTK_WINDOW_TOPLEVEL);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>g_signal_connect\u00a0<wbr>(G_OBJECT\u00a0<wbr>(window),\u00a0<wbr>\"delete_event\",\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>G_CALLBACK\u00a0<wbr>(delete_event),\u00a0<wbr>NULL);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>g_signal_connect\u00a0<wbr>(G_OBJECT\u00a0<wbr>(window),\u00a0<wbr>\"destroy\",\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>G_CALLBACK\u00a0<wbr>(destroy),\u00a0<wbr>NULL);\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gtk_widget_show\u00a0<wbr>(window);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">}\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\"><strong>int<\/strong>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">main(<strong>int<\/strong>\u00a0<wbr>argc,\u00a0<wbr><strong>char<\/strong>\u00a0<wbr>*argv[])\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">{\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>GstElement\u00a0<wbr>*pipeline,\u00a0<wbr>*filesrc,\u00a0<wbr>*decoder,\u00a0<wbr>*convert,\u00a0<wbr>*audiosink;\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#if\u00a0<wbr>GTK_WINDOW \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gtk_init(&amp;argc,\u00a0<wbr>&amp;argv);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>window_create();\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#endif \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gst_init(&amp;argc,\u00a0<wbr>&amp;argv);\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>if\u00a0<wbr>(argc\u00a0<wbr>!=\u00a0<wbr>2)\u00a0<wbr>{\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>g_print(\"usage:\u00a0<wbr>%s\u00a0<wbr>&lt;mp3\u00a0<wbr>filename&gt;\/n\",\u00a0<wbr>argv[0]);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>exit\u00a0<wbr>(-1);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>}\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>pipeline\u00a0<wbr>=\u00a0<wbr>gst_pipeline_new(\"pipeline\");\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>filesrc\u00a0<wbr>=\u00a0<wbr>gst_element_factory_make(\"filesrc\",\u00a0<wbr>\"disk_source\");\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>decoder\u00a0<wbr>=\u00a0<wbr>gst_element_factory_make(\"mad\",\u00a0<wbr>\"decoder\");\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>convert\u00a0<wbr>=\u00a0<wbr>gst_element_factory_make(\"audioconvert\",\u00a0<wbr>\"a-convert\");\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>audiosink\u00a0<wbr>=\u00a0<wbr>gst_element_factory_make(\"osssink\",\u00a0<wbr>\"play_audio\");\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>g_object_set(G_OBJECT(filesrc),\u00a0<wbr>\"location\",\u00a0<wbr>argv[1],\u00a0<wbr>NULL);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gst_bin_add_many(GST_BIN(pipeline),\u00a0<wbr>filesrc,\u00a0<wbr>decoder,\u00a0<wbr>convert,\u00a0<wbr>audiosink,\u00a0<wbr>NULL);\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gst_element_link_many(filesrc,\u00a0<wbr>decoder,\u00a0<wbr>convert,\u00a0<wbr>audiosink,\u00a0<wbr>NULL);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gst_element_set_state(pipeline,\u00a0<wbr>GST_STATE_PLAYING);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#if\u00a0<wbr>GTK_WINDOW \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gtk_main\u00a0<wbr>();\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#else \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>while\u00a0<wbr>(gst_bin_iterate_recurse(GST_BIN(pipeline)));\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">#endif \u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gst_element_set_state(pipeline,\u00a0<wbr>GST_STATE_NULL);\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>gst_object_unref(GST_OBJECT\u00a0<wbr>(pipeline));\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>exit\u00a0<wbr>(0);\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>\u00a0<wbr>}\u00a0<wbr>\u00a0<wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/wbr><\/p>\n<p align=\"left\">\u00a0<wbr><\/wbr><\/p>\n<p align=\"left\">\u7f16\u8bd1\u8fd0\u884c\uff1a<\/p>\n<p align=\"left\">gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10) hello.c -o hello<br \/>\n..\/hello \u8def\u5f84\/yourfilename.mp3<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gstreamer\u7b80\u5355\u4ecb\u7ecd\uff1a GStreamer \u4f5c\u4e3a\u6d41\u5a92\u4f53\u5e94\u7528\u6846\u67b6\uff0c\u91c7\u7528\u4e86\u57fa\u4e8e\u63d2\u4ef6\uff08plugin\uff09\u548c\u7ba1\u9053\uff08p [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[227],"tags":[281,602,234],"class_list":["post-873","post","type-post","status-publish","format-standard","hentry","category-linux","tag-gstreamer","tag-linux","tag-ubuntu"],"_links":{"self":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=873"}],"version-history":[{"count":0,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/873\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=873"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}