iOS swift streaming应用程序不能在后台模式下播放音乐

我的应用程序运行良好,但一旦屏幕安全开启或iPhone上的stream做停止。 我激活后台模式“正在播放audio”,但它并没有帮助。

这是我的ViewController.swift

import UIKit import MediaPlayer class ViewController: UIViewController { let player: MPMoviePlayerViewController = MPMoviePlayerViewController(contentURL: NSURL(string: "http://url to my stream")) override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. player.moviePlayer.movieSourceType = .Streaming self.presentViewController(player, animated: true, completion: nil) loadAddressURL() } func stop() { player.moviePlayer.stop() } @IBAction func Hitplay(sender: AnyObject) { player.moviePlayer.play() } @IBAction func Hitpause(sender: AnyObject) { player.moviePlayer.stop() } @IBOutlet var Nowplay: UIWebView! var URLPath = "http://url to on air now" func loadAddressURL() { let requestURL = NSURL (string:URLPath) let request = NSURLRequest (URL: requestURL!) Nowplay.loadRequest(request) } } 

这是我的info.plist

 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList- 1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleDevelopmentRegion</key> <string>en</string> <key>CFBundleExecutable</key> <string>$(EXECUTABLE_NAME)</string> <key>CFBundleIdentifier</key> <string>com.product name.$(PRODUCT_NAME:rfc1034identifier)</string> <key>CFBundleInfoDictionaryVersion</key> <string>6.0</string> <key>CFBundleName</key> <string>$(PRODUCT_NAME)</string> <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> <string>1.0</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> <string>1</string> <key>LSRequiresIPhoneOS</key> <true/> <key>UIBackgroundModes</key> <array> <string>audio</string> </array> <key>UILaunchStoryboardName</key> <string>LaunchScreen</string> <key>UIMainStoryboardFile</key> <string>Main</string> <key>UIRequiredDeviceCapabilities</key> <array> <string>armv7</string> </array> <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationPortraitUpsideDown</string> </array> </dict> 

设置audio背景模式是正确的,但我认为你还需要设置audio会话的audio类别。

尝试添加到您的应用程序委托的didFinishLaunchingWithOptions

 var activeError: NSError? = nil AVAudioSession.sharedInstance().setActive(true, error: &activeError) if let actError = activeError { NSLog("Error setting audio active: \(actError.code)") } var categoryError: NSError? = nil AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, error: &categoryError) if let catError = categoryError { NSLog("Error setting audio category: \(catError.code)") }