你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> 揚聲器聽筒的切換

揚聲器聽筒的切換

編輯:IOS編程技術

 

下午研究了一下揚聲器聽筒切換

如果需要保持插拔耳機之前的狀態可以用我總結的代碼:如果插耳機之前是揚聲器,拔了之後還保存揚聲器狀態。

if (判斷條件) {

        // 揚聲器       

   [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord                      withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil];

     } else {

        // 聽筒

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

    }

 

如果不需要:(enable是判斷條件)

[[AVAudioSession sharedInstance] overrideOutputAudioPort:enable ? AVAudioSessionPortOverrideSpeaker:AVAudioSessionPortOverrideNone error:nil];

 

 

原文:http://blog.csdn.net/vieri_ch/article/details/43733375

本文部分翻譯了官方對這兩個屬性的描述。鏈接如下,此外加入個人的使用體會

https://developer.apple.com/library/ios/qa/qa1754/_index.html

 

問題的起源,在iOS中,播放聲音時,輸出到揚聲器的需求。兩個屬性設置的區別

The difference is that setting the AVAudioSessionPortOverride by calling overrideOutputAudioPort: is more transient than using the category option AVAudioSessionCategoryOptionDefaultToSpeaker.

通過overrideOutputAudioPort這個方法設置,屬性AVAudioSessionPortOverride, 比使用AVAudioSessionCategoryOptionDefaultToSpeaker這個屬性更短暫

e.g

方法1

[session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];

 

方法2 ,

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];


方法1,設置之後,如果此時插入耳機,在拔掉。播放的聲音會從聽筒輸出,而不是回到揚聲器

方法2. 設置之後,始終輸出到揚聲器,而不是其他接收器,如果沒有耳機。(簡要的說,就是如果有個藍牙音箱,哪怕接上都不會有聲音輸出到藍牙音響,插上耳機,則會有聲音輸出到耳機。)

這裡有個很重要的地方。這兩個屬性都只被用於。AVAudioSessionCategoryPlayAndRecord


使用場景的補充

 

如果在某個場景下,希望強制從speaker輸出聲音,最好使用

AVAudioSessionCategoryPlayback, 而不是 AVAudioSessionCategoryPlayAndRecord ,因為後者默認從聽筒輸出。無外接設備的情況。

 

[session setCategory:AVAudioSessionCategoryPlayback error:&error];


需要使用揚聲器和聽筒切換場景,用

AVAudioSessionCategoryPlayAndRecord


使用聽筒之後,PlayandRecord下切換到揚聲器

[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error]; 

 

這篇也有一定參考價值:

http://blog.csdn.net/xdrt81y/article/details/38926663

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved