gpt4 book ai didi

swift - 无法快速播放声音

转载 作者:行者123 更新时间:2023-11-30 13:26:21 24 4
gpt4 key购买 nike

我在播放附加到按钮/IBAction 的声音时遇到一些问题。

当我在 Xcode 中对 iOS 执行完全相同的操作时,它运行得很好。但是,当我在 OS X 上执行此操作时,它不起作用。有什么想法吗?

import Cocoa
import AVFoundation

class ViewController: NSViewController, NSSpeechRecognizerDelegate {

var pingAudioPlayer : AVAudioPlayer?

var sr = NSSpeechRecognizer()
@IBOutlet var output: NSTextView?

func playPing(){
let pingSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("ping", ofType: "mp3")!)
pingAudioPlayer = AVAudioPlayer(contentsOfURL: pingSound, error: nil)
pingAudioPlayer!.prepareToPlay()
pingAudioPlayer!.currentTime = 0
pingAudioPlayer!.play()
}


@IBAction func soundTest(sender: AnyObject) {
playPing()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
sr.delegate = self
sr.commands = ["Ping", "Ping Mac"]
sr.startListening()
}

func speechRecognizer(sender: NSSpeechRecognizer, didRecognizeCommand command: AnyObject?) {
output!.string! += "\(command)\n"
playPing()
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}

}

最佳答案

主要问题是 speechRecognizer 方法,它不是正确的签名。

import AVFoundation

class ViewController: NSViewController, NSSpeechRecognizerDelegate {

var pingAudioPlayer : AVAudioPlayer?

var sr = NSSpeechRecognizer()

@IBOutlet var output: NSTextView?

func playPing(){
let pingSound = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("ping", ofType: "mp3")!)
pingAudioPlayer = try? AVAudioPlayer(contentsOfURL: pingSound)
pingAudioPlayer?.prepareToPlay()
pingAudioPlayer?.currentTime = 0
pingAudioPlayer?.play()
}

@IBAction func soundTest(sender: AnyObject) {
playPing()
}

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
sr?.delegate = self
sr?.commands = ["Ping", "Ping Mac"]
sr?.startListening()
}

func speechRecognizer(sender: NSSpeechRecognizer, didRecognizeCommand command: String) {
output?.string! += "\(command)\n"
playPing()
}

}

关于swift - 无法快速播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com