2
votes

I want to play a sound when user press on the button on WKInterfaceController. Here is how I did in my project: - Add a AVFoundation frame work to my watchkit app. - Import AVFoundation on my WKInterfaceController - Create 2 variable for audio session and player:

var audioSession:AVAudioSession!
var player:AVAudioPlayer!

- make 2 function for configure an audio session and configure Audio Player:

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

    }
  • After that i finish my button press function like this:

@IBAction func startGameButtonPressed() {

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

}

Every thing's working fine , I can saw the southPath although my button is working but I cannot hear the sound. I still use these steps on IOS app and it's working fine. May be we can't play a sound effect on Watchkit at this time? If we can, please help me to do that.

2

2 Answers

2
votes

No. It is not possible to play sounds with WatchKit on the Apple Watch.
- Apple's WatchKit Evangelist

It is not currently possible to play sounds using the latest build of WatchKit.

I would suggest submitting a feature request.

1
votes

YEs its possible to play a sound file in apple watch application.You need to add the sound file separately in apple watch application extension and the call the AVAudioPlayer to play the sound file.

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()