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

Posted

技术标签:

【中文标题】在 Swift (macOS) 中控制背景音乐【英文标题】:Control background music in Swift (macOS) 【发布时间】:2020-06-15 15:34:02 【问题描述】:

我正在开发一个基本上在后台播放一些声音的 macOS 应用程序。我唯一的问题是应用程序在后台运行时从应用程序代理播放音频以使其继续运行,但是我不知道如何从我的视图控制器停止或播放音频。在 AppDelegate.swift 中:

@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")
    

我在考虑使用委托,但我对 UI 和 C#/Swift 都很陌生,所以我真的不知道如何实现。

【问题讨论】:

【参考方案1】:

您的视图控制器可以通过

获取对应用委托的引用
if let appDelegate = NSApp.delegate as? AppDelegate 
    // do something with appDelegate.audioPlayer
    // ...

【讨论】:

以上是关于在 Swift (macOS) 中控制背景音乐的主要内容,如果未能解决你的问题,请参考以下文章

Swift UI笔记

使用 Swift 3 的导航栏背景颜色灯

如何设置使用导航控制器添加的 TableView 的背景图像 - Swift 1.2

更改所有类的所有视图控制器的背景颜色(swift 4)

应用于控制器的背景未应用于故事板swift中的表格视图单元格

Swift 3 - 通过开关更改所有视图控制器的背景颜色(暗模式/夜间模式)