2015-02-06 84 views
2

我想在用戶按下WKInterfaceController上的按鈕時播放聲音。以下是我在我的項目中所做的工作: - 將AVFoundation框架工作添加到我的watchkit應用程序中。 - 進口AVFoundation我WKInterfaceController - 創建音頻會議和球員2變量:現在可以在蘋果手錶模擬器上播放音效了嗎?

var audioSession:AVAudioSession! 
var player:AVAudioPlayer! 

- 讓2功能配置音頻會話,並配置音頻播放:

func configureAudioSession() { 
     self.audioSession = AVAudioSession.sharedInstance() 

     var categoryError:NSError? 
     var activeError:NSError? 
//  set category cho audio session 
     self.audioSession.setCategory(AVAudioSessionCategoryPlayback, error: &categoryError) 

     println("error: \(categoryError)") 
//  set active cho audio session 

     var success = self.audioSession.setActive(true, error: &activeError) 

     if !success { 
      println("error making audio session active :\(activeError)") 
     } 
    } 


func configureAudioPlayer() { 
//  Lay song path 
     var songPath = NSBundle.mainBundle().pathForResource("Open Source - Sending My Signal", ofType: "mp3") 
//  Chuyen thanh URL 
     println("songpath: \(songPath)") 
     var songURL = NSURL(fileURLWithPath: songPath!) 

     println("songURL: \(songURL)") 

// 
     var songError:NSError? 

//  Tao audioplayer 

     self.player = AVAudioPlayer(contentsOfURL: songURL!, error: &songError) 

     println("songerror:\(songError)") 

     self.player.numberOfLoops = 0 

    } 
  • 之後我完成我的按鈕按這樣的功能:

@IBAction func startGameButtonPres SED(){

self.configureAudioSession() 
self.configureAudioPlayer() 
self.player.play() 

}

每一件事情的正常工作,我可以看到southPath雖然我的按鈕是工作,但我無法聽到聲音。我仍然使用IOS應用程序的這些步驟,它工作正常。可能我們目前無法在Watchkit上播放音效?如果可以的話,請幫助我做到這一點。

回答

2

不可以在Apple Watch上使用WatchKit播放聲音。
- 蘋果WatchKit傳播者

它目前還無法發揮使用WatchKit最新版本的聲音。

我會建議提交一個功能請求。

+0

很好看這是誰! – Luke 2015-05-23 16:32:34

0

YE它可能在Apple Watch應用程序中播放聲音文件。您需要在Apple Watch應用程序擴展中分別添加聲音文件,並調用AVAudioPlayer播放聲音文件。

e.g:

let path = NSBundle.mainBundle().pathForResource("coinFlip", ofType:"caf") 
let fileURL = NSURL(fileURLWithPath: path!) 
player = AVAudioPlayer(contentsOfURL: fileURL, error: nil) 
player.prepareToPlay() 
player.delegate = self 
player.play() 
+0

這可以在手錶上播放聲音,至少在模擬器中播放。如果它在設備上什麼都沒做,我也不會感到驚訝。 – bgilham 2015-04-09 09:21:17

相關問題