C++ 我如何知道音频文件的格式?
我想制作一个音乐播放器,我想在打开时过滤掉文件而不是音频文件。C++ 我如何知道音频文件的格式?,c++,qt,audio,C++,Qt,Audio,我想制作一个音乐播放器,我想在打开时过滤掉文件而不是音频文件。 我应该使用QAudioDecoder吗? 但我用QaudioCoder检查的每个文件都告诉我相同的编解码器“audio/pcm” qaudioder解码器; 解码器.setSourceFilename(fileUrl.toLocalFile()); qDebug() 关于如何在不检查其后缀的情况下检查文件中的音频格式,有一个工具名,命令行工具运行如下: mediainfo -f [filepath] 您将获得有关该文件的完整信息,
我应该使用QAudioDecoder吗?
但我用QaudioCoder检查的每个文件都告诉我相同的编解码器“audio/pcm”
qaudioder解码器;
解码器.setSourceFilename(fileUrl.toLocalFile());
qDebug()
关于如何在不检查其后缀的情况下检查文件中的音频格式,有一个工具名,命令行工具运行如下:
mediainfo -f [filepath]
您将获得有关该文件的完整信息,包括视频和音频(如果存在)。在这些参数中,在“音频”类别下有一个“格式”值,表示内部的实际音频格式。例如AAC/AC3
>P>文件可以在名称更改后播放,我认为文件名中可能有一些空格字符,或者播放器不能访问由名称指定的文件。
关于如何在不检查其后缀的情况下检查文件中的音频格式,有一个工具名,命令行工具运行如下:
mediainfo -f [filepath]
您将获得有关该文件的完整信息,包括视频和音频(如果存在)。在这些参数中,在“音频”类别下有一个“格式”值,表示内部的实际音频格式。例如AAC/AC3
>P>文件可以在名称更改后播放,我认为文件名中可能有一些空格字符,或者播放器不能访问由名称指定的文件。
发件人:
对于播放不是简单、未压缩音频的媒体或音频文件,可以使用<代码> QediaPoovis/Cuffo> C++类……所支持的压缩音频格式取决于操作系统环境,以及用户可能安装了什么媒体插件。
如何使用
QMediaPlayer
类的一个简单示例:
player = new QMediaPlayer;
// ...
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play();
要验证是否支持编解码器,可以使用QMediaPlayer
类的error()
方法,该方法将返回错误代码(请参阅)
因此,在调用setMedia()
之后,您可以执行以下操作:
if (player->error() == QMediaPlayer::FormatError)
{
// Codec/format unsupported
}
关于打开文件时出现的错误代码:
- 检查路径中是否没有
\
字符(如果有,请用另一个\
转义)
- 检查是否有空格、特殊字符等
来自:
对于播放不是简单、未压缩音频的媒体或音频文件,可以使用<代码> QediaPoovis/Cuffo> C++类……所支持的压缩音频格式取决于操作系统环境,以及用户可能安装了什么媒体插件。
如何使用
QMediaPlayer
类的一个简单示例:
player = new QMediaPlayer;
// ...
player->setMedia(QUrl::fromLocalFile("/Users/me/Music/coolsong.mp3"));
player->setVolume(50);
player->play();
要验证是否支持编解码器,可以使用QMediaPlayer
类的error()
方法,该方法将返回错误代码(请参阅)
因此,在调用setMedia()
之后,您可以执行以下操作:
if (player->error() == QMediaPlayer::FormatError)
{
// Codec/format unsupported
}
关于打开文件时出现的错误代码:
- 检查路径中是否没有
\
字符(如果有,请用另一个\
转义)
- 检查是否有空格、特殊字符等
谢谢,我将研究如何在我的应用程序中使用mediainfo。因为您使用的是Qt framework,所以我猜您的目标应用程序可能是一个可执行的二进制文件,如果您需要研究libmediainfo模块,该模块提供带有静态库的函数。谢谢,我将研究如何在我的应用程序中使用mediainfo。因为您使用的是Qt框架,所以我猜您的目标应用程序可能是一个可执行的二进制文件,如果您需要研究libmediainfo模块,该模块提供带有静态库的函数。