我编写了一个测试应用程序,在 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-1562.240/Prototypes/FigHTTP/FigByteFlumeCustomURL.c 行发出 err=-12936 (kFigByteFlumeError_BadState) (无提供程序) 1486
媒体状态已更改:QMediaPlayer::InvalidMedia QMediaPlayer::FormatError
我不明白为什么会出现格式错误,但是,Windows 中的相同代码(轨道路径除外)运行良好。在 Mac 上是否有修复,QMediaPlayer
或者我应该使用其他 API 来播放.wav
文件吗?
任何帮助,将不胜感激!谢谢。