iOS swift流媒体应用程序在后台模式下不播放音乐
我的应用程序运行正常,但一旦屏幕保险柜打开或在iphone上执行其他操作,流就会停止。我激活了背景模式“正在播放音频”,但没有帮助 这是我的ViewController.swiftiOS swift流媒体应用程序在后台模式下不播放音乐,ios,xcode,swift,background-process,Ios,Xcode,Swift,Background Process,我的应用程序运行正常,但一旦屏幕保险柜打开或在iphone上执行其他操作,流就会停止。我激活了背景模式“正在播放音频”,但没有帮助 这是我的ViewController.swift import UIKit import MediaPlayer class ViewController: UIViewController { let player: MPMoviePlayerViewController = MPMoviePlayerViewController(contentURL:
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)
}
}
这是我的信息列表
<?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>
CfBundledDevelopmentRegion
EN
Cbundlexecutable
$(可执行文件名称)
CbundleIdentifier
com.product name.$(产品名称:rfc1034identifier)
CbundleInfo字典版本
6
CFBundleName
$(产品名称)
CbundlePackageType
应用
CbundleShortVersionString
1
CFBundleSignature
????
循环流化床锅炉
1.
LSREQUIRESPHONEOS
UIBackgroundModes
音频
UILaunchStoryboardName
发射屏
UIMainstryBoardFile
主要
UIRequiredDeviceCapabilities
armv7
UI支持接口方向
UIInterfaceOrientationPortrait
UIInterfaceOrientation上下方向图
设置音频背景模式是正确的,但我认为您还需要为音频会话设置音频类别
尝试将此添加到您的应用程序代理的didfishlaunchingwithoptions
:
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)")
}
是的,谢谢你的帮助,它正在正常工作!