簡體   English   中英

MPMoviePlayerViewController僅顯示視頻,但不播放音頻iOS 8

[英]MPMoviePlayerViewController only display video but not playing the audio iOS 8

請原諒我是否已經問過這個問題,但是我到處都是,我所能找到的只是iOS 5.0中的舊問題,人們遇到了相反的問題。

我的問題是我創建了一個我想在應用程序中使用的視頻,最近又添加了音頻。 視頻播放正常,沒有問題,但是音頻不播放。 如果我在計算機上的任何視頻播放器中播放視頻,聲音就在那里,所以我無法找出問題所在。

這是我的代碼:

var movieViewController: MPMoviePlayerViewController?

func playVideoUsingViewController() {
    if let
        path = NSBundle.mainBundle().pathForResource("wakyIntro", ofType: "mp4"),
        url = NSURL(fileURLWithPath: path),
        movieViewController = MPMoviePlayerViewController(contentURL: url) {
            self.movieViewController = movieViewController
            movieViewController.moviePlayer.fullscreen = true
            movieViewController.moviePlayer.controlStyle = .None
            movieViewController.moviePlayer.scalingMode = .AspectFill
            movieViewController.view.userInteractionEnabled = false
            self.showViewController(movieViewController, sender: self)
            println("Movie loaded")
    } else {
        println("Video failed")
    }
}

然后我從ViewController調用它:

func mainMenuViewControllerDidPressPlay(mainMenuViewController: MainMenuViewController) {
    game?.runAction(pressButton)
    if !videoPlayed{
        playVideoUsingViewController()
    } else if !gameStarted {
        gameStarted = true
        game?.bird.startAnimation(game!)
        game?.bird.startPhysics()
    }
    self.hideViewController(mainMenuViewController)

}

任何想法或建議,將不勝感激!

這是基於@ user2709666響應的快速解決方案

    var session: AVAudioSession = AVAudioSession.sharedInstance()        
    session.setCategory("AVAudioSessionCategoryPlayback", withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker, error: nil)

在播放視頻之前,請先撥打此電話。

為Swift 2.2編輯:

    do {
        try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
        try AVAudioSession.sharedInstance().setActive(true)
    } catch let error as NSError {
        print(error)
    }

進行AVAudioSession的會話。 以下是代碼:

var session = AVAudioSession.SharedInstance();
session.SetCategory(new NSString("AVAudioSessionCategoryPlayback"), AVAudioSessionCategoryOptions.DefaultToSpeaker, out error);

if (error != null)
{
    Console.WriteLine(error);
}

並將其添加到視頻播放器之前。 我確信這對您有用,我之前也遇到過同樣的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM