在Swift (macOS)中控制背景音乐。

问题描述 投票:0回答:1

我正在开发一个macOS应用程序,基本上在后台播放一些声音。我唯一的问题是,当应用程序在后台运行时,音频会从App Delegate中播放,以保持它的运行,但是我不知道如何从我的View Controller中停止或播放音频。在AppDelegate.swift.View控制器中,我不知道如何停止或播放音频。

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {


var audioURL = URL(fileURLWithPath: Bundle.main.path(forResource: "audio", ofType: "wav")!)
var audioPlayer = AVAudioPlayer()

let statusItem = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)



func applicationDidFinishLaunching(_ aNotification: Notification) {




    do {
        audioPlayer = try AVAudioPlayer(contentsOf: audioURL)
        audioPlayer.prepareToPlay()
        audioPlayer.volume = 0.2
    } catch {
        print("Sorry, couldn't load the audio file")
    }
}

我正在考虑使用一个代表,但我对用户界面和C#Swift都很陌生,所以我真的不知道如何实现一个代表。

swift macos delegates avaudioplayer
1个回答
2
投票

你的视图控制器可以通过以下方法获得对App delegate的引用

if let appDelegate = NSApp.delegate as? AppDelegate {
    // do something with appDelegate.audioPlayer
    // ...
}
© www.soinside.com 2019 - 2024. All rights reserved.