它是什么编解码器?不知怎的,我知道这是一个音频文件。二进制文件为微信(ios)音频文件。
为可下载的示例文件提供 AUD 扩展名是没有意义的。
您最有可能在 Westwood 视频游戏的程序文件夹中找到 AUD 文件。具有 AUD 文件扩展名的文件是视频游戏压缩音频文件。
如何找到编解码器?
如果您知道编解码器的名称或其 ID(视频编解码器的 FourCC 标识符或音频编解码器的 WaveFormat 标识符),请尝试搜索 Internet。您通常可以访问编解码器制造商的网站下载最新版本的编解码器。
由于您的文件没有标题或元信息(文件魔术),您只能依赖文件扩展名,例如:
http://www-mmsp.ece.mcgill.ca/documents/AudioFormats/AU/AU.html
如果我得到一个带有 .EXE 扩展名的文件并且 *不知何故我知道这确实是一个音频文件`,我可以使用Winista检查文件魔法。
public MimeType GetMimeTypeFromFile(string filePath)
{
sbyte[] fileData = null;
using (FileStream srcFile = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
byte[] data = new byte[srcFile.Length];
srcFile.Read(data, 0, (Int32)srcFile.Length);
fileData = Winista.Mime.SupportUtil.ToSByteArray(data);
}
MimeType oMimeType = GetMimeType(fileData);
if (oMimeType != null) return oMimeType;
//We haven't found the file using Magic (eg a text/plain file)
//so instead use URLMon to try and get the files format
Winista.MimeDetect.URLMONMimeDetect.urlmonMimeDetect urlmonMimeDetect = new Winista.MimeDetect.URLMONMimeDetect.urlmonMimeDetect();
string urlmonMimeType = urlmonMimeDetect.GetMimeFromFile(filePath);
if (!string.IsNullOrEmpty(urlmonMimeType))
{
foreach (MimeType mimeType in types)
{
if (mimeType.Name == urlmonMimeType)
{
return mimeType;
}
}
}
return oMimeType;
}
注意使用 URLMon 来查找 MIME 类型的代码可以在msdn 上找到 - 检测文件类型
上述方法将打开文件并检测其真正的 MIME 类型以了解使用哪个程序打开它。它使用 XML 格式的视频/音频 MIME 类型映射文件进行匹配:
<!--
! Audio primary type
! -->
<mime-type name="audio/basic"
description="uLaw/AU Audio File">
<ext>au</ext><ext>snd</ext>
<magic offset="0" type="byte" value="2e736e64000000"/>
</mime-type>
<mime-type name="audio/midi"
description="Musical Instrument Digital Interface MIDI-sequention Sound">
<ext>mid</ext><ext>midi</ext><ext>kar</ext>
<magic offset="0" value="MThd"/>
</mime-type>
<mime-type name="audio/mpeg"
description="MPEG Audio Stream, Layer III">
<ext>mp3</ext><ext>mp2</ext><ext>mpga</ext>
<magic offset="0" value="ID3"/>
</mime-type>
我尝试了 winamp 和 Windows Media Classic,但都无法打开文件。
由于您不知道文件的 MIME 类型和文件扩展名 AUD 显然是错误的,我认为无法检测到播放此文件所需的编解码器/程序。