0

ビデオ プレーヤーを統合しましたが、オーディオまたはビデオの再生中に問題が発生しました。つまり、デバイスがサイレント モードまたはバイブレート モードの場合、サウンドがミュートされます。

これは、AVFoundation/AVKIt または Apple からの IOS デバイスのデフォルトの構成設定です。

Apple開発者サイトとStackoverflowのさまざまなソリューションを検索して、デバイスを呼び出しモードにするか、プレーヤー ビュー コントローラー クラスでコードを記述しました。

しかし、Audio Video 機能を使用するクラスが多数ある場合、すべてのビュー コントローラーで同じコードを何度も記述する必要があります。これはまったく良い習慣ではないと思います。

そこで、デバイスがサイレント モードかバイブレーション モードかにかかわらず、目的の結果を達成するための最適化された方法、つまりオーディオのミュートを解除する方法を共有します。

4

1 に答える 1

1

ここでは、デバイスがアプリケーション全体でサイレント モードまたはバイブレーション モードのときにオーディオ機能を有効にする簡単な手順を示します。一度に宣言するだけです。

iPhone 6、iPhone 8、iPhone XR、およびシミュレーターでテスト済み。

ステップ 1: AppDelegate.swift クラス ファイルを開きます。

ステップ 2: applicationDidBecomeActive 関数に移動します。

ステップ 3: 以下のコードを applicationDidBecomeActive 関数に記述します。

  • Swift 5 では:

    do {
             try AVAudioSession.sharedInstance().setCategory(.playback)
       } catch(let error) {
             print(error.localizedDescription)
       }
    
  • Swift 4 以下の場合:

       do {
             try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
          } catch {
              // error handling or perform your desire function
          }
    
  • 目的 C では:

         [[AVAudioSession sharedInstance]
          setCategory: AVAudioSessionCategoryPlayback
          error: nil];
    

ステップ 4: プロジェクトをコンパイルして実行します。

万歳!!!

お力になれて、嬉しいです。ありがとう。

于 2020-03-27T07:42:39.450 に答える