m3u源码分享网站 2021流畅m3u源

大家好,关于m3u源码分享网站很多朋友都还不太明白,今天小编就来为大家分享关于2021流畅m3u源的知识,希望对各位有所帮助!

今天给大家分享一下:

如何用Qt实现一个超简单的视频播放器。

运行效果:

代码链接:

https://doc.qt.io/qt-5/qtmultimedia-multimediawidgets-videowidget-example.html

实现难度:

★☆☆☆☆

1.新建应用

在QtCreator依次点击:

->File->NewFileorProject

->Applications->QtWidgetsApplication

然后一路点击next直到finish。

2.界面设计

VideoPlayer::VideoPlayer(QWidget*parent)\n:QWidget(parent)\n{\nm_mediaPlayer=newQMediaPlayer(this,QMediaPlayer::VideoSurface);\n[…]\n\n//横向布局打开button、播放button、进度条\nQBoxLayout*controlLayout=newQHBoxLayout;\ncontrolLayout->addWidget(m_openButton);\n[…]\n\n//竖向布局视频窗口、控制台、状态栏\nQBoxLayout*layout=newQVBoxLayout;\nlayout->addWidget(m_videoWidget);\nlayout->addLayout(controlLayout);\nlayout->addWidget(m_msgLabel);\n\nsetLayout(layout);\n\n//重点\nm_mediaPlayer->setVideoOutput(m_videoWidget);\n}\n

m_mediaPlayer的类型为QMediaPlayer,QMediaPlayer支持播放媒体文件,包括音频和视频。

m_videoWidget的类型为QVideoWidget,QVideoWidget是一个用来容纳视频或者音频的控件。

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

点击这里找小助理0元领取:嵌入式物联网学习资料(头条)

运行效果:

所有控件都是摆设,没有任何实际功能。

3.支持播放

打开文件:

VideoPlayer::VideoPlayer(QWidget*parent)\n:QWidget(parent)\n{\n[…]\n\n//绑定信号和槽\nconnect(m_openButton,&QPushButton::clicked,this,&VideoPlayer::openFile);\nconnect(m_playButton,&QPushButton::clicked,this,&VideoPlayer::play);\n}\n

当用户点击&34;按键时,弹出文件选择框:

voidVideoPlayer::openFile()\n{\nQUrlurl;\nQFileDialogfileDialog(this);\n\nif(fileDialog.exec()==QDialog::Accepted){\n\nurl=fileDialog.selectedUrls().constFirst();\nif(url.isValid()){\n//通知QMediaPlayer,QMediaPlayer待播放的媒体文件路径\nm_mediaPlayer->setMedia(url);\nplay();\n}\n}\n}\n\n

setMedia()用于设置媒体文件的路径。

播放视频:

voidVideoPlayer::play()\n{\nswitch(m_mediaPlayer->state()){\ncaseQMediaPlayer::PlayingState:\nm_mediaPlayer->pause();\nbreak;\ndefault:\nm_mediaPlayer->play();\nbreak;\n}\n}\n

如果当前处于播放状态,则暂停播放。

如果当前处于暂停状态,则开始播放。

运行效果:

4.支持进度条

显示进度:

VideoPlayer::VideoPlayer(QWidget*parent)\n:QWidget(parent)\n{\n[…]\n\n//绑定信号和槽\nconnect(m_mediaPlayer,&QMediaPlayer::positionChanged,this,&VideoPlayer::positionChanged);\n\nconnect(m_posSlider,&VideoSlider::sliderMoved,\nthis,&VideoPlayer::setPosition);\n[…]\n}\n

当播放内容的进度发生改变时,QMediaPlayer会发出positionChanged()信号,此时我们需要更新进度条:

voidVideoPlayer::positionChanged(qint64position)\n{\nm_posSlider->setValue(position);\n}\n

当用户拖动进度条时,更新播放进度:

voidVideoPlayer::setPosition(qint64position)\n{\nm_mediaPlayer->setPosition(position);\n}\n

运行效果:

到此,一个简陋的播放器就实现完毕了。

5.进一步学习

关于Qtmultimedia的底层实现:

Qtmultimedia的源码位于:

Qt5.14.1/5.14.1/Src/qtmultimedia,

想进一步了解的小伙伴可以阅读一下。

$treeqtmultimedia/src/-L2-d\nqtmultimedia/src/\n├──gsttools\n├──imports\n│├──audioengine\n│└──multimedia\n├──multimedia\n│├──audio\n│├──camera\n│├──controls\n│├──doc\n│├──playback\n│├──radio\n│├──recording\n│└──video\n├──multimediawidgets\n│└──doc\n├──plugins\n│├──alsa\n│├──android\n│├──audiocapture\n│├──avfoundation\n│├──common\n│├──coreaudio\n│├──directshow\n│├──gstreamer\n│├──m3u\n│├──opensles\n│├──pulseaudio\n│├──qnx\n│├──qnx-audio\n│├──resourcepolicy\n│├──v4l\n│├──videonode\n│├──wasapi\n│├──windowsaudio\n│├──winrt\n│└──wmf\n└──qtmultimediaquicktools\n└──shaders

Linux平台下的实现是基于GStreamer的,关于GStreamer,可以参考下面的入门文章。

GStreamer系列-基础概念

GStreamer系列-HelloWorld

更多关于QtMutilMedia的例子:

https://doc.qt.io/qt-5/multimedia-examples.html\n

原文链接:https://mp.weixin.qq.com/s/lbcNw67YSb-1hmApEoQXiw

文章转载自:老吴嵌入式

文章来源于:哈哈哈,这是我用过的最简陋的视频播放器|Qt官方示例

原文链接:哈哈哈,这是我用过的最简陋的视频播放器|Qt官方示例

版权声明:本文来源于网络,免费传达知识,版权归原作者所有,如涉及作品版权问题,请联系我进行删除

好了,文章到这里就结束啦,如果本次分享的m3u源码分享网站和2021流畅m3u源问题对您有所帮助,还望关注下本站哦!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平