我一直在阅读一些关于在Apple Watch
播放声音的帖子,看起来不太可能......但是,此类帖子涉及音频文件,我想知道如果可以播放至少系统声音,并且如果发送到手表的通知可以播放系统声音,就像iPhone和iPad中的通知一样。我在Apple Watch Human Interface Guidelines和Apple Watch Programming Guide中都找不到与声音相关的任何内容。
由于
答案 0 :(得分:3)
使用WatchKit API无法播放任何音频。
答案 1 :(得分:0)
在watchOS 2中,现在可以实现。由于NDA,我无法详细说明。请查看Apple提供的开发人员文档。
答案 2 :(得分:0)
您可以加载音频文件或系统声音,并使用Apple Watch扬声器播放。使用 WKAudioFilePlayer 播放音频文件需要连接到Apple Watch的蓝牙耳机播放声音。
使用 WKInterfaceDevice 播放振动中的少数触觉反馈声音:
[[WKInterfaceDevice currentDevice] playHaptic:WKHapticTypeFailure]
要播放任何音频文件,请使用 AVAudioEngine :
1)将 AVFoundation.framework 添加到您的框架列表中。
2)在.h文件中,输入
#import <AVFoundation/AVFoundation.h>
@property (nonatomic) AVAudioEngine *audioEngine;
@property (nonatomic) AVAudioPlayerNode *playerNode;
@property (nonatomic) AVAudioFile *audioFile;
@property (nonatomic) AVAudioPCMBuffer *audioPCMBuffer;
3)在.m文件中,输入
NSError *error = nil;
NSURL *fileURL = [[NSBundle mainBundle] URLForResource:@"alarm" withExtension:@"wav"];
self.audioFile = [[AVAudioFile alloc] initForReading:fileURL error:&error];
if (error) {
NSLog(@"error");
return;
}
self.audioEngine = [[AVAudioEngine alloc]init];
AVAudioFormat *audioFormat = self.audioFile.processingFormat;
AVAudioFrameCount length = (AVAudioFrameCount)self.audioFile.length;
self.audioPCMBuffer = [[AVAudioPCMBuffer alloc] initWithPCMFormat:audioFormat frameCapacity:length];
[self.audioFile readIntoBuffer:self.audioPCMBuffer error:nil];
AVAudioMixerNode *mixerNode = [self.audioEngine mainMixerNode];
self.playerNode = [[AVAudioPlayerNode alloc] init];
[self.audioEngine attachNode:self.playerNode];
[self.audioEngine connect:self.playerNode to:mixerNode format:self.audioFile.processingFormat];
[self.audioEngine startAndReturnError:&error];
[self.playerNode scheduleFile:self.audioFile atTime:nil completionHandler:nil];
[self.playerNode play];
您可以进一步使用watchOS 2.0中的这些类。有playHaptic:和AVAudioEngine类的文档。
我希望这可以帮助您解决问题。