使用MonoTouch在iPad设备上播放声音时出现问题

时间:2011-05-09 13:33:03

标签: ios resources audio xamarin.ios

我使用以下代码通过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

任何人都知道我做错了什么?感谢您指点我的问题!

1 个答案:

答案 0 :(得分:1)

模拟器具有区分大小写功能,但实际设备区分大小写。这使许多人绊倒了。