我想在我的应用程序中按下按钮时弹奏键盘“点击”声音。 如何使用Monotouch访问此声音片段?我不想使用AudioToolbox SystemSound.FromFile()传递我自己的声音。到目前为止,我所有的搜索都使用了'AudioServicesCreateSystemSoundID'导致了这个解决方案或Objective-C代码,我无法转换为C#。
答案 0 :(得分:2)
嗯,这不是Playing system sound without importing your own代码中的1:1端口,但是应该这样做:
var path = NSBundle.FromIdentifier ("com.Apple.UIKit").PathForResource ("Tock", "aiff");
using (var systemSound = new SystemSound (NSUrl.FromFilename (path))) {
systemSound.PlaySystemSound ();
}
SystemSound
在MonoTouch.AudioToolbox
中定义。请务必同时查看MonoTouch Play System Sound和MonoTouch: Playing sound
答案 1 :(得分:2)
对于iOS 7.0及更高版本,Stephane Delcroix的回答似乎不再起作用了......
但是你可以很容易地找到这个好项目中所有声音的路径: https://github.com/TUNER88/iOSSystemSoundsLibrary
以下是我在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();
}
上面的答案中的using()结构在我的情况下造成了麻烦......似乎它太早发布了声音,我只能在PlaySystemSound上听到它(甚至不能用viber完成) ()。