ホーム>source

私は簡単ですAVAudioPlayer 私のiphoneアプリでは動作しますが、出力はヘッドフォンではなく電話のスピーカーでなければなりません。見つけた類似のトピック ここでは、それを迅速に「翻訳」する方法がわかりません(AudioSessionSetProperty 混乱しています)?

<前>ウィズウィズ var audioPlayer = AVAudioPlayer(data: fileData, error: &playbackError) //fileData is url to file if let player = audioPlayer{ player.delegate = self if(player.prepareToPlay() && player.play()){ println("Started playing the recorded audio") } else { println("Could not play the audio") } }
あなたの答え
  • 解決した方法 # 1

    私は答えを理解したばかりなので、これがどのように混乱するか理解できます。だから AudioSessionSetProperty  iOS 7で廃止されました。

    これを追加:

    <前>ウィズウィズ

    必ず session.overrideOutputAudioPort(AVAudioSessionPortOverride.Speaker, error: nil) を呼び出してください  最初。

  • 解決した方法 # 2

    Swift 3または4の場合:

    <前>ウィズウィズ

    AVAudioSession.sharedInstance() を回避するには  エラー-50(コメントでuser462990によって言及)、 let audioSession = AVAudioSession.sharedInstance() do { try audioSession.overrideOutputAudioPort(AVAudioSessionPortOverride.speaker) } catch let error as NSError { print("audioSession error: \(error.localizedDescription)") }  セッションカテゴリを設定した後に呼び出す必要があります(以下のコード)。

    <前>ウィズウィズ

  • 解決した方法 # 3

    これらの機能を試してみてください。

    <前>ウィズウィズ

  • 解決した方法 # 4

    <前>ウィズウィズ

  • 解決した方法 # 5

    迅速5

    <前>ウィズウィズ OSStatus

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ performance - C ++(SQRTなど)でカスタム数学関数を実装するポイントは何ですか?