【问题标题】:Can play a sound effect on apple watch simulator now?苹果手表模拟器现在可以播放音效了吗?
【发布时间】:2015-02-06 06:48:31
【问题描述】:

我想在用户按下 WKInterfaceController 上的按钮时播放声音。这是我在项目中的做法: - 将 AVFoundation 框架添加到我的 watchkit 应用程序。 - 在我的 WKInterfaceController 上导入 AVFoundation - 为音频会话和播放器创建 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 startGameButtonPressed() {

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

}

一切正常,虽然我的按钮可以工作,但我可以看到 southPath,但我听不到声音。我仍然在 IOS 应用程序上使用这些步骤,它工作正常。可能此时我们无法在 Watchkit 上播放音效?如果可以的话,请帮我做。

【问题讨论】:

    标签: swift xcode6 watchkit


    【解决方案1】:

    没有。无法在 Apple Watch 上使用 WatchKit 播放声音。
    - Apple 的 WatchKit 传播者

    目前无法使用最新版本的 WatchKit 播放声音。

    我建议提交功能请求。

    【讨论】:

      【解决方案2】:

      可以在apple watch应用程序中播放声音文件。您需要在apple watch应用程序扩展中单独添加声音文件,并调用AVAudioPlayer播放声音文件。

      例如:

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

      【讨论】:

      • 这会在手表上播放声音,至少在模拟器中是这样。如果它在设备上什么都不做,我不会感到惊讶。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2011-07-12
      • 2021-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多