2011-05-09 63 views
2

我使用下面的代码通过MonoTouch的发挥iPad的应用程序文件的.caf:问题播放声音的iPad设备上使用MonoTouch的

 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://本地主机/私营/无功/移动/Applications/AC24496E-12E9-4690-B154-BA1AD1123EDC/Sample.app/Media/Click.caf;错误= SystemSoundUnspecified

任何人都知道我在做什么错了?感谢任何指点,让我通过这个问题!

+0

唉!设备文件系统区分大小写。文件名实际上命名为“click.caf”..不是“Click.caf”。显然模拟器不太挑剔!问题解决了。没有什么可以在这里看到.. :-) – 2011-05-09 13:47:31

回答

1

模拟器可识别大小写,但实际设备区分大小写。这已经绊倒了很多人。