2017-04-13 35 views
2

iPhoneでビデオを再生しようとしています。ビデオの音声がiPhoneのスピーカーに出てきたら理想的です。Swiftビデオからの音声:デフォルトのスピーカー

しかし、私は私のコンソールにこのエラーが表示されます。ここでは

audioSession error: The operation couldn’t be completed. (OSStatus error -50.)

は私のコードです::

let player = AVPlayer(url: video_url) 

    let audioSession = AVAudioSession.sharedInstance() 

    do { 
     try audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker) 
    } catch let error as NSError { 
     print("audioSession error: \(error.localizedDescription)") 
    } 

    // get the lenght of the video 
    self.video_duration = getMediaDuration(url: video_url) + 0.25 

    // notification for when video is over. 
    NotificationCenter.default.addObserver(self, selector: #selector(self.playerDidFinish), name: NSNotification.Name.AVPlayerItemDidPlayToEndTime, object: player.currentItem) 

    // the video controller... 
    let controller = AVPlayerViewController() 
    controller.view.frame = self.view.frame 
    controller.player = player 
    controller.showsPlaybackControls = false 
    controller.view.tag = 99 
    self.video_ctrl = controller 

    // add controller as subview 
    self.view.addSubview(controller.view) 
    controller.player?.play() 

私はエラーをGoogleで検索し、どんな結果を見ていません。 何か助けていただければ幸いです。

後で同じアプリケーションで、AVAudioSessionと同じ行を使用してオーディオファイルを再生しても問題ありません。その後、私がビデオを再生すると、私が望むように、スピーカーに音が出てきます。しかし、なぜそれは初めて起こらないのですか?

+1

を使用すると、オーディオセッションのカテゴリを設定すると、セッションを起動したことがありますか?もしそうなら、どのカテゴリ?カテゴリを設定した場合、 '.OptionDefaultToSpeaker'をオプションとして設定することもできます。このQ&Aでは、あなたの方法はあなたが聞いているものに合った、もっと「過渡的な」バージョンであると言います:https://developer.apple.com/library/content/qa/qa1754/_index.html –

答えて

1

ただオプション.defaultToSpeaker使用:

do { 
    try AVAudioSession.sharedInstance().setActive(false) 
    try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback, with: .defaultToSpeaker) 
    try AVAudioSession.sharedInstance().setActive(true) 
} catch let error as NSError { 
    print("AVAudioSession error: \(error.localizedDescription)") 
} 
+0

このカテゴリーを適用しましたが、イヤホンから音が出ますが、一方の側だけが他方の側の音を演奏していません。どんな手掛かり ? –

関連する問題