您的位置:首页 > 编程语言 > Qt开发

Qt-extended中如何用Gstreamer支持流媒体

2010-11-08 20:22 288 查看
本站所有文章由本站和原作者保留一切权力,仅在保留本版权信息、原文链接、原文作者的情况下允许转载,转载请勿删改原文内容, 并不得用于商业用途。 谢谢合作。

原文链接:Qt-extended中如何用Gstreamer支持流媒体

分析版本:qt-extended
-4.4.2

默认情况下是不支持的。

调试
步骤:

1.在网上找了一个实时电台的网址http://scfire-dtc-aa01.stream.aol.com:80/stream/1074

2. 用Linux自带的totem去播放能成功,这样确保了gstreamer
的codec没有问题

3.上面的步骤成功的话,可以用qcop向qpe server发Service 请求,播放流文件,linux命令为

$ ./image/bin/qcop service send PlayMedia “openURL(QString)” “http://scfire-dtc-aa01.stream.aol.com:80/stream/1074″

4. 上面命令,Qtopia会提示出错,因为Mediaplayer代码中将 “http://xxxxx”变成了”file://http//xxxxx”,所以没法播放

该代码在./src/libraries/qtopia
media/qmediaplaylist.cpp文件中大概666行的地方

分析版本:qt-extended
-4.4.2

默认情况下是不支持的。

调试
步骤:

1.在网上找了一个实时电台的网址http://scfire-dtc-aa01.stream.aol.com:80/stream/1074

2. 用Linux自带的totem去播放能成功,这样确保了gstreamer
的codec没有问题

3.上面的步骤成功的话,可以用qcop向qpe server发Service 请求,播放流文件,linux命令为

$ ./image/bin/qcop service send PlayMedia “openURL(QString)” “http://scfire-dtc-aa01.stream.aol.com:80/stream/1074″

4. 上面命令,Qtopia会提示出错,因为Mediaplayer代码中将 “http://xxxxx”变成了”file://http//xxxxx”,所以没法播放

该代码在./src/libraries/qtopia
media/qmediaplaylist.cpp文件中大概666行的地方
663 else

664 return content.fileName();

665 case QMediaPlaylist::Url:

666 return QUrl(QLatin1String("file://")+content.fileName());

667 case QMediaPlaylist::Artist:

668 return content.property( QContent::Artist );

669 case QMediaPlaylist::Album:

670 return content.property( QContent::Album );

因为只有真正的本地文件地址才需要前面的“file://”,而网络地址则

不用改变。 当然只是显示问题出在这里,真正去很好的支持流文件,还需要从该文件名的传入传出参数处都进行改动,才能正式支持流格式的播放。
注意:步骤3是测试用的,你也可以写代码去openurl
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: