我已导入 AVFoundation 并将音频添加到我的应用程序,但如果应用程序进入后台模式,音频不会停止

Posted

技术标签:

【中文标题】我已导入 AVFoundation 并将音频添加到我的应用程序,但如果应用程序进入后台模式,音频不会停止【英文标题】:I have Imported AVFoundation and added Audio to my app but if the App enters the background mode the audio isn't stop 【发布时间】:2016-12-07 16:23:11 【问题描述】:

我已导入 AVFoundation 并将音频添加到我的应用,但如果应用进入后台模式,音频不会停止

var backgroundMusic: AVAudioPlayer? = 
    guard let url = Bundle.main.url(forResource: "Mining by Moonlight", withExtension: "mp3") else 
        return nil
    
    do 
        let player = try AVAudioPlayer(contentsOf: url)
        player.numberOfLoops = -1
        return player
     catch 
        return nil
    
()

viewDidLoad 中是代码:

backgroundMusic?.prepareToPlay()

backgroundMusic?.play()

谁能帮帮我?

【问题讨论】:

是否创建了avAudioPlayer的全局变量,如果没有,则在appDelegate类中制作并停止audioplayer,方法:ApplicationDidEnterInBackground...我希望..... 【参考方案1】:

确保您的后台任务中未启用音频和 AirPlay

【讨论】:

【参考方案2】:

在你的控制器类中使用 NSNotificationCenter

   NSNotificationCenter.defaultCenter().addObserver(self, selector:   Selector(“stopSong:"), name:UIApplicationDidEnterBackgroundNotification, object: nil)

如果您的应用程序在后台运行,则使用此方法

  func stopSong(notification : NSNotification) 
  backgroundMusic?.stop()
   

【讨论】:

以上是关于我已导入 AVFoundation 并将音频添加到我的应用程序,但如果应用程序进入后台模式,音频不会停止的主要内容,如果未能解决你的问题,请参考以下文章

AVFoundation 添加音频输入使音频播放静音

如何防止使用 AVFoundation 录制视频中断当前正在播放的任何全局音频(Swift)?

有没有办法在不使用 AVFoundation 框架的情况下在 iOS 中录制音频?

IOS开发中AVFoundation中AVAudioPlayer的使用

谷歌移动广告 SDK Ios7 缺少音频框架

AVFoundation 将第一帧添加到视频