我使用以下代码通过Monotouch在iPad应用程序中播放.CAF文件:
public void PlayClick()
{
PlaySound("Media/Click.caf");
}
private void PlaySound(string soundFile)
{
//var mediaFile = NSUrl.FromFilename(soundFile);
//var audioPlayer = new SystemSound(mediaFile);
//audioPlayer.PlaySystemSound();
var audioPlayer = new SystemSound(soundFile);
if (audioPlayer != null)
{
audioPlayer.PlaySystemSound();
}
}
它可以在模拟器中找到 - 事实上,我尝试的所有变体(SystemSound,AVAudioPlayer等)似乎在模拟器中都可以正常工作,但我还没有在真实设备上播放过的版本。声音文件都标记为内容,我检查了上传到iPad的捆绑包,文件肯定存在于名为“Media”的子文件夹中。如果我更改代码以使用SystemSound(通过带有Url的构造函数),我会得到一个带有详细信息的 InvalidOperationException :
无法为url文件创建系统声音ID://localhost/private/var/mobile/Applications/AC24496E-12E9-4690-B154-BA1AD1123EDC/Sample.app/Media/Click.caf;误差= SystemSoundUnspecified
任何人都知道我做错了什么?感谢您指点我的问题!
答案 0 :(得分:1)
模拟器具有区分大小写功能,但实际设备区分大小写。这使许多人绊倒了。