Qt 5.5.0上使用QMediaPlayer播放音频,出现错误:defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer"
将qt安装目录下的plugins下的mediaservice文件夹拷到运行目录下解决,能正常播放MP3音频。
本机目录如下: C:\Qt\Qt5.5.0\5.5\msvc2010\plugins\mediaservice
附播放音频代码如下:
构造函数中创建:
const QString soundstr("./resources/sound.mp3");
m_player = new QMediaPlayer(this);
connect(m_player, SIGNAL(error(QMediaPlayer::Error)), this, SLOT(PrintError(QMediaPlayer::Error)));
connect(m_player, SIGNAL(mediaStatusChanged(QMediaPlayer::MediaStatus)), this, SLOT(MediaStatusChange(QMediaPlayer::MediaStatus)));
m_player->setMedia(QUrl::fromLocalFile(soundstr));
m_player->setVolume(100);
m_player->play();
//播放音频相关
//mediaplayer有错误发生时打印相应错误
void audioTest::PrintError(QMediaPlayer::Error err)
{
switch (err)
{
case QMediaPlayer::NoError:
printf( "NoError");
break;
case QMediaPlayer::ResourceError:
printf( "ResourceError");
break;
case QMediaPlayer::FormatError:
printf( "FormatError");
break;
case QMediaPlayer::NetworkError:
printf( "NetworkError");
break;
case QMediaPlayer::AccessDeniedError:
printf( "AccessDeniedError");
break;
case QMediaPlayer::ServiceMissingError:
printf( "ServiceMissingError");
break;
case QMediaPlayer::MediaIsPlaylist:
printf( "MediaIsPlaylist");
break;
default:
printf( "qmediaplayer err:[%d]", err);
break;
}
}
//状态变化时打印相应状态
void audioTest::MediaStatusChange(QMediaPlayer::MediaStatus status)
{
switch (status)
{
case QMediaPlayer::UnknownMediaStatus:
printf( "UnknownMediaStatus");
break;
case QMediaPlayer::NoMedia:
printf( "NoMedia");
break;
case QMediaPlayer::LoadingMedia:
printf( "LoadingMedia");
break;
case QMediaPlayer::LoadedMedia:
printf( "LoadedMedia");
break;
case QMediaPlayer::StalledMedia:
printf( "StalledMedia");
break;
case QMediaPlayer::BufferingMedia:
printf( "BufferingMedia");
break;
case QMediaPlayer::BufferedMedia:
printf( "BufferedMedia");
break;
case QMediaPlayer::EndOfMedia:
printf( "EndOfMedia");
break;
case QMediaPlayer::InvalidMedia:
printf( InvalidMedia");
break;
default:
printf( "MediaStatusChange MediaStatus[%d]", status);
break;
}
在Qt 5.5.0环境下使用QMediaPlayer播放音频时遇到'no service found for - "org.qt-project.qt.mediaplayer"'错误。解决方法是将Qt安装目录下的plugins/mediaservice文件夹复制到应用程序运行目录。本文提供了播放音频的代码示例,并展示了错误处理和媒体状态改变的回调函数。

1628

被折叠的 条评论
为什么被折叠?



