2014-12-03 11 views
5

Moja aplikacja działa poprawnie, ale gdy tylko zostanie włączony bezpieczny ekran lub gdy zrobi się coś innego, iPhone zatrzyma odtwarzanie strumienia. Aktywowałem tryby tła "odtwarzam dźwięk", ale to nie pomaga.Aplikacja do strumieniowego przesyłania strumieniowego na iOS nie odtwarza muzyki w trybie tła

To mój 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) 
    } 
} 

i tu jest moje 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> 

Odpowiedz

7

Ustawianie trybu dźwięku tła jest poprawny, ale myślę, że trzeba także ustawić kategorię dźwięku dla sesji audio.

warto dodać to aplikacja delegata 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

tak, dzięki za pomoc, to działa tak jak powinno! –

Powiązane problemy