2016-06-11 7 views
0

Ich habe eine AVPlayer-Setup, aber ich kann nicht scheinen, um die Video-Audio weiter zu spielen, wenn das Telefon gesperrt ist oder auf dem Startbildschirm. Ich habe die info.plist bearbeitet und den Audio-Hintergrundmodus aktiviert, aber ich denke, dass etwas Code hinzugefügt werden muss. Bitte könnten Sie mir helfen. DankXcode swift - Hintergrund-Modus - Audio in AVPlayer wenn gesperrt

Hier ist mein Code:

Import UIKit Import AVFoundation Import AVKit

Klasse Viewcontroller: UIViewController {

@IBAction func WarmUp(sender: UIButton) 
{ 
    WarmUpVideo() 
} 

func WarmUpVideo() 
{ 
    let filePath = NSBundle.mainBundle().pathForResource("132", ofType: "MOV") 
    let videoURL = NSURL(fileURLWithPath: filePath!) 

    let player = AVPlayer(URL: videoURL) 
    let playerViewController = AVPlayerViewController() 

    playerViewController.player = player 

    self.presentViewController(playerViewController, animated: true) {() -> Void in playerViewController.player!.play() 
    } 

} 

func playExternalVideo() 
{ 

}

@IBAction func CoolDown(sender: UIButton) 
{ 
    CoolDownVideo() 
} 

func CoolDownVideo() 
{ 
    let filePath = NSBundle.mainBundle().pathForResource("132", ofType: "mp4") 
    let videoURL = NSURL(fileURLWithPath: filePath!) 

    let player = AVPlayer(URL: videoURL) 
    let playerViewController = AVPlayerViewController() 

    playerViewController.player = player 

    self.presentViewController(playerViewController, animated: true) {() -> Void in playerViewController.player!.play() 
    } 

} 

}

Antwort

2

Ich glaube, du verpasst den folgenden Code:

do { 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback) 
    print("AVAudioSession Category Playback OK") 
    do { 
     try AVAudioSession.sharedInstance().setActive(true) 
     print("AVAudioSession is Active") 
    } catch let error as NSError { 
     print(error.localizedDescription) 
    } 
} catch let error as NSError { 
    print(error.localizedDescription) 
} 

diese in Ihre viewDidLoad.

+0

Super, es funktioniert, aber ich habe ein Problem: Wenn ich das Gerät sperren, wird es weiterspielen, aber wenn ich mit dem Home-Taste im Hintergrund gehen, stoppt es. Irgendwelche Tipps hier? Dank dafür! –

+0

Sie müssen sicherstellen, dass Sie den Hintergrundmodus für Audio aktiviert haben. Ziel> Funktionen> Hintergrundmodi> Audio, AirPlay .. etc und Ziel> Funktionen> Inter-App Audio. Just aktiviert diese beiden – Jad

+0

Ja, diese Einstellungen wurde ohne Glück hinzugefügt :(spielt immer noch, wenn Bildschirmsperre, aber nicht, wenn App Vordergrund geht –