如何使用 Swift 在后台播放音频?

编程入门 行业动态 更新时间:2024-10-24 18:26:34
本文介绍了如何使用 Swift 在后台播放音频?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如您所见,我正在流式传输音频.但是当我按下主页按钮并退出时,应用程序流停止或我听不到.如何在后台继续流式传输并从锁定屏幕收听?

As you see I'm streaming an audio broadcast. But when I press the home button and exit the app streaming stops or I cannot hear. How can I continue streaming in background and listen it from lock screen?

ViewController.Swift

ViewController.Swift

import UIKit import AVFoundation import MediaPlayer import GoogleMobileAds class ViewController: UIViewController, GADInterstitialDelegate { @IBOutlet weak var exitMapButton: UIButton! @IBOutlet weak var radarMap: UIWebView! var interstitial: GADInterstitial! func createAndLoadInterstitial() -> GADInterstitial { var interstitial = GADInterstitial(adUnitID: "adUnitID-XXXX") interstitial.delegate = self interstitial.loadRequest(GADRequest()) return interstitial } func getAd(){ if (self.interstitial.isReady) { self.interstitial.presentFromRootViewController(self) self.interstitial = self.createAndLoadInterstitial() } } @IBOutlet weak var ataturkButton: UIButton! @IBOutlet weak var sabihaButton: UIButton! @IBOutlet weak var esenbogaButton: UIButton! @IBOutlet weak var weatherButton: UIButton! @IBOutlet weak var statusLabel: UILabel! @IBOutlet weak var playButton: UIButton! @IBOutlet weak var webViewButton: UIButton! var googleBannerView: GADBannerView! override func viewDidLoad() { super.viewDidLoad() } class PlayerAv { var audioLink: String? var player: AVPlayer init(link: String) { self.audioLink = link self.player = AVPlayer(URL: NSURL(string: link)) } } var myPlayer = PlayerAv(link: "somewebsite/abc.pls") var setTowerState = "" @IBAction func sliderValueChanged(sender: UISlider) { var currentValue = Float(sender.value) println(currentValue) myPlayer.player.volume = currentValue } @IBAction func getWeatherWindow(sender: AnyObject) { UIApplication.sharedApplication().openURL(NSURL(string: "somewebpage")!) println("Directed to weather page") } @IBAction func changeToAtaturk() { myPlayer.player.pause() myPlayer = PlayerAv(link: "somewebsite/abc.pls") myPlayer.audioLink == "" println("(myPlayer.audioLink!)--a") playButton.setTitle("Pause", forState: UIControlState.Normal) myPlayer.player.play() setTowerState = "ataturk" statusLabel.text = "Status: Playing, LTBA" } @IBAction func changeToEsenboga() { myPlayer.player.pause() myPlayer = PlayerAv(link: "somewebsite/def.pls") println("(myPlayer.audioLink!)--a") playButton.setTitle("Pause", forState: UIControlState.Normal) myPlayer.player.play() setTowerState = "esenboga" statusLabel.text = "Status: Playing, LTAC" } @IBAction func changeToSabiha() { myPlayer.player.pause() myPlayer = PlayerAv(link: "somewebsite/efg.pls") println("(myPlayer.audioLink!)--a") playButton.setTitle("Pause", forState: UIControlState.Normal) myPlayer.player.play() setTowerState = "sabiha" statusLabel.text = "Status: Playing, LTFJ" } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func playButtonPressed(sender: AnyObject) { toggle() } func toggle() { if playButton.titleLabel?.text == "Play" { playRadio() println("Playing") statusLabel.text = "Status: Playing" } else { pauseRadio() println("Paused") statusLabel.text = "Status: Paused" } } func playRadio() { myPlayer.player.play() playButton.setTitle("Pause", forState: UIControlState.Normal) } func pauseRadio() { myPlayer.player.pause() playButton.setTitle("Play", forState: UIControlState.Normal) } }

推荐答案

您需要设置您的应用功能后台模式(音频和 AirPlay)并将您的 AVAudioSession 类别设置为 AVAudioSessionCategoryPlayback 并将其设置为活动

You need to set your app Capabilities Background Modes (Audio and AirPlay) and set your AVAudioSession category to AVAudioSessionCategoryPlayback and set it active

来自 Xcode 11.4 • Swift 5.2

do { try AVAudioSession.sharedInstance().setCategory(.playback, mode: .default, options: [.mixWithOthers, .allowAirPlay]) print("Playback OK") try AVAudioSession.sharedInstance().setActive(true) print("Session is Active") } catch { print(error) }

更多推荐

如何使用 Swift 在后台播放音频?

本文发布于:2023-07-11 09:10:17,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1093533.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何使用   后台   音频   Swift

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!