2013-11-25 125 views
1

我想在按下應用程序中的按鈕時播放鍵盤的'單擊'聲音。 如何使用Monotouch訪問此聲音片段?我不想使用AudioToolbox SystemSound.FromFile()傳遞我自己的聲音。到目前爲止,我所有的搜索都導致使用「AudioServicesCreateSystemSoundID」這個解決方案或Objective-C代碼,而我無法轉換爲C#。使用Monotouch播放默認的iOS系統聲音

+0

http://stackoverflow.com/questions/7831671/playing-system-sound-without-importing-your-own –

+0

我正在尋找一個C#示例與 – binncheol

+0

一起使用API​​的是1:1。唯一的區別是語法,我保證。 –

回答

2

隨着iOS 7.0或更高,斯特凡DELCROIX答案似乎不工作了......

但是你可以很容易找到的路徑,在這美好的項目中的所有聲音: https://github.com/TUNER88/iOSSystemSoundsLibrary

下面是我用UND的iOS 7的代碼(照顧,可能會與模擬器工作!)

private const string NotificationSoundPath = @"/System/Library/Audio/UISounds/New/Fanfare.caf"; 

    public static void TriggerSoundAndViber() 
    { 
     SystemSound notificationSound = SystemSound.FromFile(NotificationSoundPath); 
     notificationSound.AddSystemSoundCompletion(SystemSound.Vibrate.PlaySystemSound); 
     notificationSound.PlaySystemSound(); 
    } 

另外,使用()在一個構建上面的問題在我的情況下造成了麻煩......它似乎很早就發佈了聲音,我只能聽到PlaySystemSound()上的斷點(甚至不能用viber完成)。

2

嗯,這不是1:從Playing system sound without importing your own代碼1端口,但這應該做的工作:

var path = NSBundle.FromIdentifier ("com.Apple.UIKit").PathForResource ("Tock", "aiff"); 
using (var systemSound = new SystemSound (NSUrl.FromFilename (path))) { 
    systemSound.PlaySystemSound(); 
} 

SystemSoundMonoTouch.AudioToolbox定義。確保還看MonoTouch Play System SoundMonoTouch: Playing sound

+0

完美適合我,但不得不使用'「com.apple.UIKit」'而不是''com.Apple.UIKit「' – user1829325