问题标签 [qmediaplayer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - Qt -- 如何播放存储在 QByteArray 中的音频文件?
我正在研究 Qt 中的一个特殊应用程序,它将其 .mp3 音频文件作为 BLOB 数据存储在 QSQLITE 数据库中。
使用以下代码,我创建了一个 QByteArray:
然后我尝试用 QMediaPlayer 播放声音:
但不幸的是,我收到了这个错误:
我想要实现的主要目标是能够播放存储在 QByteArray 中的这些 .mp3 文件。
注意:在这种特殊情况下,不可能只将路径存储在数据库中。
我真的非常感谢您的帮助。非常感谢!
c++ - 引用预定义的 QMediaPlayer
嗨,我今年仍在为我在学校的主要项目学习 C++ 和 QT,我想要一些关于 C++ 语法和使用某些 QT 函数的帮助。当我正在制作媒体管理器时,我已经设法通过按下表单中的按钮来播放歌曲。现在我想通过按另一个按钮来暂停同一首歌曲,但我不完全确定该怎么做,你能帮忙吗?
我已经有了这个来播放歌曲:
但我想知道如何从名为“播放器”的 QMediaPlayer 中暂停相同的音频文件,目前我所想到的就是这个,我不确定我是否做得正确:
这两个功能(如果是这样的话)都是从按下按钮开始的,我知道它适用于第一个。
qt - 从 Qt QMediaPlayer 获取流数据
我QMediaPlayer
用来播放在线 mp3,我想在缓冲区完成后下载整个 mp3 数据。但与它相关的唯一功能是setMedia(const QMediaContent & media, QIODevice * stream = 0)
.
流指针用于放入数据。所以我尝试使用QReply
它作为它的参数。它绝对失败了。
mgr
是 QNetworkAccessManager,source 是 mp3 的在线 url 。
我的问题是:有没有办法获取音乐数据?是setMedia
可以做到的吗?
- - - - - - - - - - - - - 更新 - - - - - - - -
我连接了回复的信号,并在第一时间readReady
将其放入该回复有一些要阅读的内容。但返回错误。setMedia
QMediaPlayer
QMediaPlayer::ResourceError
PS我添加了QMediaPlayer::StreamPlayback
标志。
- - - - - - - - - - - - 更新 - - - - - - - - - - - - - -------------
我找到了为什么我的代码不起作用。setMedia
函数调用DirectShowPlayerService::load
惯性。并且有这样的线路检查:
因为isSequential()
有文档:
bool QIODevice::isSequential() const [virtual] 如果此设备是连续的,则返回 true;否则返回假。
与随机访问设备相反,顺序设备没有开始、结束、大小或当前位置的概念,也不支持查找。只有当设备报告数据可用时,您才能从设备中读取。顺序设备最常见的例子是网络套接字。在 Unix 上,诸如 /dev/zero 和 fifo 管道之类的特殊文件是连续的。
另一方面,常规文件确实支持随机访问。它们既有大小又有当前位置,还支持在数据流中向后和向前搜索。常规文件是不连续的。
最后,网络回复不能在这种情况下使用。:-(</p>
所以我的进一步研究可能是: Qt 如何处理网络套接字。有什么方法可以获取数据吗?
- - - - - - - - - 更新 - - - - - - - - - - -
好像QMediaPlayer
是基于GStreamer
并且有办法下载源代码的注释中的数据。但是我没有使用过GStreamer
,所以我很难使用Qt的下载功能。
我发现的唯一有用的信息是:QMediaPlayer API 用于下载播放流。但我不知道该怎么做。请帮我!
c++ - 无法使用 QMediaPlayer 播放某些视频
我有一个播放视频的 Qt 5.3 应用程序,它适用于某些视频。不幸的是,当给定一些 .mov 文件时,我要么得到一个,QMediaPlayer::FormatError
要么我可以听到音频但没有视频。
我假设这是由于缺少编解码器,有没有办法添加支持以便我可以播放视频?
编辑:这是在 OS X
qt - 获取 QMediaPlaylist 对象的持续时间
我为有声读物创建了一个播放器 - 当您打开一个包含 mp3 文件的文件夹时,它们的整个列表将添加到播放列表和列表视图中。我有一个标签,它假设显示整本书的持续时间。但是 player->duration 只返回当前曲目的持续时间,如果我通过循环并执行 playlist->next() 每一步, player->duration 返回 0。我知道 Phonon 和文件元数据,但我需要在不使用它的情况下执行此操作。
c++ - 使用 QMediaPlayer 播放资源中的 mp3 文件
我尝试播放资源中声明的 mp3 文件,但它显示:
这是我设置媒体的方式:
根据这篇文章,它说QMediaPlayer
需要play()
在回调之后调用mediaStatusChanged()
,这正是我所做的。所以有什么问题???
PS 我可以将QMediaPlayer 示例中的 mp3 文件作为本地文件播放。
更新 1:我可以将 mp3 文件作为本地文件播放...
macos - 将 mp3 文件打包到 Qt 应用程序中
由于我发现 QMediaPlayer 无法从资源中检索 mp3 文件,因此我想将它们用作本地文件。我使用这个 cmd稍作修改将文件复制到安装目录:
所以这些文件存在于 /HomeControl.app/Contents/MacOS/sound 中。从 Qt Creator 应用程序可以完美播放 mp3,但如果从构建目录执行,它根本不会播放 mp3!真的不知道为什么。
与在 Qt 创建器中执行和直接从应用程序执行有什么区别吗?像调试模式还是什么?
还是有其他方法可以将 mp3 文件正确部署到包中?
c++ - How to get the total time of an audio file?
How to get the total time of an audio file? I am trying this:
but all the time the function returns 0. I use the latest version Qt on Windows 8.
android - 哪些视频文件可以在 Android 上播放 QMediaPlayer?
我在 Windows 上使用 QT 5.3.1 和 QT Creator。我在 Examples\Qt-5.3\multimediawidgets\videographicsitem\ dir 示例中找到了 QMediaPlayer。但它只在 Windows 上播放 .mp4 H264 文件,不希望播放 .mkv H264 和 .avi 文件。此外,该项目不想在 Android 4.0.3(API 15)上播放 .mp4 H264 视频(并且它不播放任何视频)。
是否可以在 Android 4.0.3 (API 15) 上播放 .mp4 H264 视频文件?
qt - 使用 MAC 从 IODevice 流式传输 Qt 音频
我有一个关于 Qt5 的问题。我使用了一个 SQlite DB,它包含小的 mp3 BLOB。
现在,我直接从数据库中使用 QMediaPlayer 流式传输音频数据来播放它(使用 QIODevice)。
这适用于 Linux,但在移植到 MAC 时,它不会播放音频。
在做了一些谷歌搜索后,我发现,这是因为后端不同,GStreamer 与 QuickTime(是否支持流媒体)。
现在的问题是,我该怎么做才能让它工作?是否可以在我的 Mac 应用程序中静态编译 GStreamer?或者您对虚拟文件支持有什么建议,所以我可以将 QUrl 用于 QMediaPlayer?
一个例子会很棒,谢谢。