日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

android audiotrack权限,Android中AudioRecord和AudioTrack的使用注意

發布時間:2025/3/20 Android 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android audiotrack权限,Android中AudioRecord和AudioTrack的使用注意 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AudioRecord需要至少

這項錄音權限。有時候在AndroidManifest.xml中加進去后,有些手機系統仍然沒有授予該權限。需要到手機的設置中的權限管理,把這項權限打開。沒權限就會閃退。如果錄下來的數據要保存到文件,就需要額外的對SD卡的讀寫操作權限。

AudioTrack的MOME_STREAM模式是先調用play,然后write進去數據就會播放。這時候創建對象時候傳入的緩沖區可以使用getMinBufferSize的返回值。

如果使用MODE_STATIC模式,一開始總是不成功,后來在stack overflow看到一篇帖子,關鍵在于這時候緩沖區的大小要一次性在創建對象的時候傳進去。比如你要播放5秒的數據,就必須創建一個容納5秒數據的緩沖區,然后在new AudioTrack的時候把這個緩沖區大小傳進去,而不能使用getMinBufferSize返回的大小。getMinBufferSize返回的大小應該比較小,所以可能就響一下就沒了,或者根本聽不到。MODE_STATIC模式和MODE_STREAM模式不同的是,要先write所有數據進去,然后再調用play播放。

另外,play不是阻塞到音頻播放完成后才返回,而是啟動播放后,該函數立刻返回,所以不能在play后馬上調用stop.這樣就只播放了一點點聲音。要調用檢測到

audioTrack.getPlayState() 返回 AudioTrack.PLAYSTATE_STOPPED

才能調用stop停止播放。這點也折騰了不少時間。

似乎要立刻停止播放可以先flush沖掉所有數據,這樣馬上靜音,然后再stop,再release

好像還有說法audiorecord要把值置為null,讓系統釋放資源。不確定,如果發現其他應用無法獲取麥克風了,可以試試置null,強制回收試試。

總結

以上是生活随笔為你收集整理的android audiotrack权限,Android中AudioRecord和AudioTrack的使用注意的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。