2015-06-09 16 views
9

Tôi đang cố gắng phát âm thanh thông qua phần mở rộng watchkit bằng WKAudioFilePlayer tuy nhiên không phát âm thanh nào. Tôi đang sử dụng mã phản hồi xúc giác như một loại gỡ lỗi để chắc chắn nó thực thi nó (mà nó làm). Như một lưu ý phụ, tắt tiếng không được bật và tên tệp là chính xác.Phát âm thanh trong Apple 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

Thành viên mục tiêu của tệp có được đặt thành tiện ích mở rộng bộ đồng hồ của bạn không? Nó sẽ không phát nếu thành viên được đặt thành ứng dụng của bạn. – WrightsCS

+0

Tôi không chắc chắn làm thế nào để tìm hiểu, tuy nhiên các tập tin đã được sao chép vào trong phần mở rộng watchkit. Tôi không thể gỡ lỗi nó, beta 1 dường như có vấn đề với tải một phiên gỡ lỗi. –

Trả lời

8

Tôi đã triển khai như sau và hoạt động tốt. (Xin lỗi, đó là Swift)

1) Xác định thuộc tính cho đối tượng người chơi

var player: WKAudioFilePlayer! 

2) Thiết lập các tài sản và máy nghe nhạc khi nó thức tỉnh

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) Chơi nếu người chơi đã sẵn sàng để chơi.

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

Bên cạnh đó, nó cần thiết để kết nối một Tai nghe Bluetooth với watch.

+0

Tôi đã đặt nó giống như bạn trong Obj-c. Tôi nhận được thông báo tương tự cho tai nghe bluetooth khi sử dụng trình mô phỏng, tuy nhiên khi chạy trên một chiếc đồng hồ thực, nó chỉ làm hỏng ứng dụng và đóng sau vài giây. Có vẻ như đây là phương pháp chơi nhạc, tôi chỉ muốn phát âm thanh thông báo tùy chỉnh trên đồng hồ. –

+2

Nó không hoạt động trong trường hợp của tôi. Chỉ cần không chơi. –

+1

Tôi đã thử nó và âm thanh chỉ được phát một lần. Và nó chỉ hoạt động với tai nghe bluetooth. –