Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/100.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Apple Watchkit中播放声音_Ios_Objective C_Watchkit_Apple Watch - Fatal编程技术网

Ios 在Apple Watchkit中播放声音

Ios 在Apple Watchkit中播放声音,ios,objective-c,watchkit,apple-watch,Ios,Objective C,Watchkit,Apple Watch,我正在尝试使用WKAudioFilePlayer通过watchkit扩展播放声音,但是没有播放声音。我使用触觉反馈代码作为一种调试,以确保它执行它(它确实执行)。作为旁注,静音未打开且文件名正确 NSURL *falcon = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"falcon"

我正在尝试使用WKAudioFilePlayer通过watchkit扩展播放声音,但是没有播放声音。我使用触觉反馈代码作为一种调试,以确保它执行它(它确实执行)。作为旁注,静音未打开且文件名正确

NSURL *falcon = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                        pathForResource:@"falcon"
                                        ofType:@"mp3"]];
WKAudioFileAsset *asset = [WKAudioFileAsset assetWithURL:falcon];
WKAudioFilePlayerItem *sound = [WKAudioFilePlayerItem playerItemWithAsset:asset];
audioPlayer = [WKAudioFilePlayer playerWithPlayerItem:sound];


[audioPlayer play];

WKInterfaceDevice *device = [WKInterfaceDevice currentDevice];
[device playHaptic:WKHapticTypeClick];

我实现了如下,它工作得很好。(对不起,是斯威夫特)

1) 为播放器对象定义属性

var player: WKAudioFilePlayer!
2) 当资源和玩家醒来时设置资源和玩家

override func awakeWithContext(context: AnyObject?) {
    super.awakeWithContext(context)

    let filePath = NSBundle.mainBundle().pathForResource("se_tap", ofType: "m4a")!
    let fileUrl = NSURL.fileURLWithPath(filePath)
    let asset = WKAudioFileAsset(URL: fileUrl)
    let playerItem = WKAudioFilePlayerItem(asset: asset)
    player = WKAudioFilePlayer(playerItem: playerItem)
}
3) 播放如果玩家准备好播放

@IBAction func playBtnTapped() {
    switch player.status {
    case .ReadyToPlay:
        player.play()
    case .Failed:
        print("failed")
    case .Unknown:
        print("unknown")
    }
}

此外,它还需要将蓝牙耳机连接到监视。

文件目标成员资格是否设置为您的监视套件扩展名?如果将成员资格设置为你的应用程序,它将不会播放。我不确定如何查找,但是该文件已复制到watchkit扩展名中。我也无法调试它,beta 1似乎在加载调试会话时有问题。我在Obj-c中也做了同样的安排。当我使用模拟器时,蓝牙耳机也会收到同样的通知,但是当在实际的手表上运行时,它会使应用程序崩溃,几秒钟后关闭。似乎这就是播放音乐的方法,我只是想在手表上播放一个定制的通知声音。我试过了,声音只播放了一次。它只能与蓝牙耳机配合使用。请问,如何在手表应用程序上实现流媒体广播播放?@Markus您能找到如何播放流媒体手表应用程序吗