我编写了一个测试应用程序,用于在Mac(OSX Yosemite版本10.10.5)上使用qt(最新版本)播放'.wav'音频文件。这是cpp文件中的代码。
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
m_player = new QMediaPlayer(this);
connect(m_player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(onMediaStatusChanged()));
connect(m_player, SIGNAL(positionChanged(qint64)), this, SLOT(onProgressed(qint64)));
m_player->setMedia(QMediaContent(QUrl("/Users/testUser/Library/Metal.wav")));
m_player->play();
}
Widget::~Widget()
{
}
void Widget::onProgressed(qint64 pos)
{
qDebug()<<"Position is:"<<pos;
}
void Widget::onMediaStatusChanged()
{
qDebug()<<"Media Status Changed:" << m_player->mediaStatus() << " " << m_player->error();
}
这是我得到的输出
媒体状态已更改:QMediaPlayer :: LoadingMedia QMediaPlayer :: NoError
[11:16:13.300] FigByteFlumeCustomURLOpen在/SourceCache/CoreMedia/CoreMedia/CoreMedia-1562.240/Prototypes/FigHTTP/FigByteFlumeCustomURL.c行上表示err = -12936(kFigByteFlumeError_BadState)(无提供程序)。 1486
媒体状态已更改:QMediaPlayer :: InvalidMedia QMediaPlayer :: FormatError
我不明白为什么会出现格式错误,但是Windows中的相同代码(轨道的路径除外)可以正常工作。QMediaPlayer
Mac上是否有修复程序,还是我应该使用其他API播放.wav
文件?
任何帮助,将不胜感激!谢谢。
我怀疑失败的原因(或其中至少一项)是您正在将文件路径传递给QUrl而不是URL。因此,要么设置“ file:///Users/testUser/Library/Metal.wav”,要么使用QUrl :: fromLocalFile(“ / Users / testUser / Library / Metal.wav”)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句