2014-12-03 9 views
5

Meine App läuft gut, aber sobald der Bildschirm sicher ist oder etwas anderes auf dem iPhone der Stream stoppt. Ich habe die Hintergrundmodi aktiviert "spielt Audio", aber es hilft nicht.iOS Swift-Streaming-App spielt keine Musik im Hintergrundmodus

Das ist mein 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) 
    } 
} 

und hier ist mein 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> 

Antwort

7

Einstellen der Audio-Hintergrundmodus ist richtig, aber ich glaube, Sie auch die Audio-Kategorie festlegen müssen für die Audiositzung.

Versuchen, diese zu AppDelegate des 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)") 
} 
+0

ja, vielen Dank für Ihre Hilfe, um es, wie es sollte funktioniert! –

Verwandte Themen