我正在尝试为我的自定义键盘播放Tock声音。
我尝试过:
[[UIDevice currentDevice] playInputClick];
和
NSString *path = [[NSBundle bundleWithIdentifier:@"com.apple.UIKit"] pathForResource:@"Tock" ofType:@"aiff"];
SystemSoundID soundID;
AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:path], &soundID);
AudioServicesPlaySystemSound(soundID);
AudioServicesDisposeSystemSoundID(soundID);
和
AudioServicesPlaySystemSound(0x450);
和
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"test" ofType: @"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath:soundFilePath ];
myAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
myAudioPlayer.numberOfLoops = 1;
[myAudioPlayer play];
这给了我一个错误:
AudioSessionClient: Couldn't connect to com.apple.audio.AudioSession
Couldn't connect to com.apple.audio.AudioQueueServer; AudioQueue will not be usable
并查看了此link
当我在ViewControllers(而不是自定义键盘)中尝试这些代码时,一切正常。但是当我在我的自定义键盘上测试它时,它闲置了至少10秒钟,我听不到任何声音。
我还确保我的iPhone没有处于静音模式,扬声器没有损坏,键盘点击已启用。我在iPhone和iPad上测试了这些代码,但结果却是相同的
Xcode版本6.3.1 iOS版本8.3
我做错了什么?提前谢谢。
答案 0 :(得分:2)
我找到了解决问题的方法。
在Info.plist中。
KeyboardViewController.m
并在我的dispatch_async(dispatch_get_main_queue(), ^{
AudioServicesPlaySystemSound(1104);
});
response