日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

【Android Developers Training】 46. 處理音頻

系統(tǒng) 2350 0

注:本文翻譯自Google官方的Android Developers Training文檔,譯者技術(shù)一般,由于喜愛安卓而產(chǎn)生了翻譯的念頭,純屬個(gè)人興趣愛好。

原文鏈接: http://developer.android.com/training/managing-audio/audio-focus.html


當(dāng)用戶希望從Android設(shè)備欣賞音頻時(shí),他將會(huì)有狠多選擇。大多數(shù)設(shè)備有內(nèi)置的喇叭,以及有線耳機(jī)的插孔,還有很多支持A2DP音頻的藍(lán)牙連接設(shè)備。


一). 檢查哪個(gè)硬件在被使用

你的應(yīng)用是如何表現(xiàn)的可能會(huì)被外放被引導(dǎo)至什么硬件設(shè)備所影響。

你可以通過查詢 AudioManager 來確定現(xiàn)在的音頻是被引導(dǎo)至擴(kuò)音器,有線耳機(jī)還是藍(lán)牙設(shè)備。如下所示:

      
        if
      
      
         (isBluetoothA2dpOn()) {

    
      
      
        //
      
      
         Adjust output for Bluetooth.
      
      

} 
      
        else
      
      
        if
      
      
         (isSpeakerphoneOn()) {

    
      
      
        //
      
      
         Adjust output for Speakerphone.
      
      

} 
      
        else
      
      
        if
      
      
         (isWiredHeadsetOn()) {

    
      
      
        //
      
      
         Adjust output for headsets
      
      

} 
      
        else
      
      
         { 

    
      
      
        //
      
      
         If audio plays and noone can hear it, is it still playing?
      
      

}
    

二). 處理音頻外放設(shè)備的改變

當(dāng)沒有插入耳機(jī),也沒有藍(lán)牙設(shè)備連接,音頻流會(huì)自動(dòng)的引導(dǎo)至擴(kuò)音器。如果你聽音樂時(shí)喜歡吧音量調(diào)的像我一樣高,那么你可能會(huì)被吵鬧聲驚嚇到。

幸運(yùn)的是,當(dāng)這種情況發(fā)生時(shí),系統(tǒng)會(huì)廣播一個(gè) ACTION_AUDIO_BECOMING_NOISY 行為的intent。注冊(cè)一個(gè)廣播接收器( BroadcastReceiver )來監(jiān)聽這一intent是一個(gè)很好的習(xí)慣,不管你是否在播放音樂。對(duì)于音樂播放器來說,用戶一般期望播放被停止,二對(duì)于游戲來說,你可能會(huì)選擇顯著降低音量。

      
        private
      
      
        class
      
       NoisyAudioStreamReceiver 
      
        extends
      
      
         BroadcastReceiver {

    @Override

    
      
      
        public
      
      
        void
      
      
         onReceive(Context context, Intent intent) {

        
      
      
        if
      
      
         (AudioManager.ACTION_AUDIO_BECOMING_NOISY.equals(intent.getAction())) {

            
      
      
        //
      
      
         Pause the playback
      
      
                }

    }

}




      
      
        private
      
       IntentFilter intentFilter = 
      
        new
      
      
         IntentFilter(AudioManager.ACTION_AUDIO_BECOMING_NOISY);




      
      
        private
      
      
        void
      
      
         startPlayback() {

    registerReceiver(myNoisyAudioStreamReceiver(), intentFilter);

}




      
      
        private
      
      
        void
      
      
         stopPlayback() {

    unregisterReceiver(myNoisyAudioStreamReceiver);

}
      
    

【Android Developers Training】 46. 處理音頻外放設(shè)備


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 阳谷县| 林西县| 洪泽县| 平谷区| 镇江市| 土默特右旗| 江源县| 津市市| 青田县| 侯马市| 临潭县| 云霄县| 枣庄市| 高邑县| 威海市| 玉林市| 秦安县| 平凉市| 梅河口市| 嘉鱼县| 三门县| 兴业县| 都江堰市| 南京市| 枣强县| 临海市| 玉林市| 皋兰县| 兰州市| 张北县| 调兵山市| 德格县| 绩溪县| 无锡市| 叶城县| 临清市| 天水市| 车致| 闻喜县| 治多县| 类乌齐县|