我正在尝试将声音效果合并到我一直在开发的 Apple Watch 应用程序中(用 Objective-C 编写),但我对不允许第三方应用程序直接从手表播放声音的事实感到失望。作为一种解决方法,我正在寻找是否有办法通过配对设备的扬声器播放指定的声音。我在这里找到了一个这样的线程:
但是,经过验证的答案中的链接此时似乎已关闭。简而言之,如何通过配对的 iPhone 扬声器播放 Apple Watch 触发的音效?另外,是否可以让设备从手表上振动?任何帮助是极大的赞赏。
我正在尝试将声音效果合并到我一直在开发的 Apple Watch 应用程序中(用 Objective-C 编写),但我对不允许第三方应用程序直接从手表播放声音的事实感到失望。作为一种解决方法,我正在寻找是否有办法通过配对设备的扬声器播放指定的声音。我在这里找到了一个这样的线程:
但是,经过验证的答案中的链接此时似乎已关闭。简而言之,如何通过配对的 iPhone 扬声器播放 Apple Watch 触发的音效?另外,是否可以让设备从手表上振动?任何帮助是极大的赞赏。
不幸的是,AppleWatch 不允许开发人员播放或录制音频。您可以像模拟器一样从 iPhone 扬声器播放声音。如果您在 WatchKit 扩展上实现 AVAudioPlayer,您将在 Mac 中收听,因为 iPhone 模拟器正在为您播放。
摘自苹果开发者论坛:
由于 simplegames 显示的代码在 iPhone 模拟器上运行,而不是在手表模拟器上运行,并且手表模拟器上的按钮按下导致 iPhone 模拟器代码激活音频播放器,因此您的 mac 正在模拟来自 iPhone 的声音。
不可以。在 Apple Watch 上无法使用 WatchKit 播放声音。
我让手表播放这样的音频。但是,它确实显示了媒体播放器。它并不理想,但它有效。
#import <Foundation/Foundation.h>
NSURL *yourURL = [myBundle URLForResource:@"yourAudioFile" withExtension:@"wav"];
NSDictionary *options = @{WKMediaPlayerControllerOptionsAutoplayKey : @YES};
[self presentMediaPlayerControllerWithURL:yourURL options:options completion:^(BOOL didPlayToEnd, NSTimeInterval endTime, NSError * __nullable error) {if (error)NSLog(@"Error: %@", [error description]);}];