{"id":72,"date":"2016-08-03T21:01:06","date_gmt":"2016-08-03T13:01:06","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=72"},"modified":"2018-01-16T16:28:37","modified_gmt":"2018-01-16T08:28:37","slug":"android_decibel","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/android_decibel\/","title":{"rendered":"Android\u5206\u8d1d\u4eea"},"content":{"rendered":"<p>android\u5206\u8d1d\u4eea<br \/>\n\u90bb\u5c45\u7684\u97f3\u54cd\u5f71\u54cd\u4f60\u7684\u7761\u7720?\u5de5\u5730\u7684\u566a\u97f3\u5f71\u54cd\u4f60\u7684\u542c\u529b?<br \/>\n\u5229\u7528\u624b\u673a\u7684\u54aa\u514b\u98ce,\u6d4b\u91cf\u58f0\u97f3\u5f3a\u5ea6.<br \/>\n\u4f60\u9700\u8981android\u7684\u5f55\u97f3AudioRecord\u63a5\u6536\u58f0\u97f3<br \/>\nstatic android.media.AudioRecord\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Audio_Record;<br \/>\n\u6bcf\u4e2a\u91c7\u6837\u5355\u4f4d\u6240\u5360\u7a7a\u95f4<br \/>\nstatic int BitsPerSample = 16;<br \/>\n\u8bbe\u7f6e\u97f3\u9891\u91c7\u6837\u7387\uff0c44100\u662f\u76ee\u524d\u7684\u6807\u51c6\uff0c\u4f46\u662f\u67d0\u4e9b\u8bbe\u5907\u4ecd\u7136\u652f\u630122050\uff0c16000\uff0c11025<br \/>\nstatic int\u00a0\u00a0\u00a0 Audio_Frequency = 44100;\u97f3\u9891\u91c7\u6837\u7387<br \/>\n\u8bbe\u7f6e\u97f3\u9891\u7684\u5f55\u5236\u7684\u58f0\u9053CHANNEL_IN_STEREO\u4e3a\u53cc\u58f0\u9053\uff0cCHANNEL_CONFIGURATION_MONO\u4e3a\u5355\u58f0\u9053<br \/>\n\u8bbe\u7f6e\u58f0\u9053\u914d\u7f6e-\u5355\u58f0\u9053,\u53cc\u58f0\u9053\u9664\u975e\u4f60\u6709\u4e24\u4e2a\u54aa\u514b\u98ce,\u5426\u5219\u65e0\u610f\u4e49.<br \/>\nstatic int\u00a0\u00a0\u00a0 Audio_Channel\u00a0\u00a0 = AudioFormat.CHANNEL_CONFIGURATION_MONO;<br \/>\nstatic int\u00a0\u00a0\u00a0 Audio_Channel_Count = 1;\/\/ \u4e00\u4e2a\u58f0\u9053<br \/>\nstatic int\u00a0\u00a0\u00a0 Audio_Encoding\u00a0 =\u00a0 AudioFormat.ENCODING_PCM_16BIT;\/\/ \u97f3\u9891\u7f16\u7801<br \/>\nstatic byte\u00a0\u00a0 Audio_Buffer[];<br \/>\nstatic int\u00a0\u00a0\u00a0 Audio_Buffer_Size;<\/p>\n<p>1.\u8ba1\u7b97\u7f13\u51b2\u7684\u5927\u5c0f<br \/>\nAudio_Buffer_Size = android.media.AudioRecord.getMinBufferSize(Audio_Frequency, Audio_Channel, Audio_Encoding);<br \/>\n2.\u5206\u914d\u5185\u5b58\u7a7a\u95f4<br \/>\nAudio_Buffer = new byte[Audio_Buffer_Size];<br \/>\n3.\u5206\u914d\u5f55\u97f3\u5bf9\u8c61<br \/>\nAudio_Record = new android.media.AudioRecord(MediaRecorder.AudioSource.MIC,<br \/>\nAudio_Frequency, Audio_Channel, Audio_Encoding,<br \/>\nAudio_Buffer_Size);<br \/>\n4.\u542f\u52a8\u5f55\u97f3<br \/>\nAudio_Record.startRecording();<br \/>\n5.\u9000\u51fa\u65f6\u8981\u91ca\u653e\u8d44\u6e90<br \/>\nAudio_Record.stop();\/\/ \u505c\u6b62<br \/>\nAudio_Record.release();\/\/ \u91ca\u653e<\/p>\n<p>\u8bfb\u53d6\u97f3\u9891\u6570\u636e<br \/>\nsize = Audio_Record.read(Audio_Buffer,0, Audio_Buffer_Size);<br \/>\nif(size == android.media.AudioRecord.ERROR_INVALID_OPERATION )<br \/>\nreturn true;<br \/>\nv = 0;<br \/>\nAudio_Size = Audio_Size + size;\/\/ \u6587\u4ef6\u7684\u5927\u5c0f<\/p>\n<p>for(int i=0;i&lt;size;i=i+2)<br \/>\n{<br \/>\nvalue = (Audio_Buffer[i+1] &lt;&lt; 8) + Audio_Buffer[i];<br \/>\nv = v + (value * value);<br \/>\n}<br \/>\n\u5e73\u65b9\u548c\u9664\u4ee5\u6570\u636e\u603b\u957f\u5ea6\uff0c\u5f97\u5230\u97f3\u91cf\u5927\u5c0f\u3002<br \/>\nmean = v \/(double)(size);\u00a0 \/\/ \u97f3\u91cf<br \/>\n\u6700\u540e\u8ba1\u7b97\u5206\u8d1d<br \/>\nDecibel_Val = 10 * Math.log10(mean);<\/p>\n<p>\u521b\u5efa\u65b0\u7684\u7ebf\u7a0b<br \/>\nAudio_Thread = new Thread(new Runnable() {<br \/>\npublic void run() {<br \/>\nwhile(Audio_State == STATE_RUN)<br \/>\n{<br \/>\nRead(); \/\/ \u8bfb\u53d6<\/p>\n<p>}<\/p>\n<p>Audio_Record.stop();\/\/ \u505c\u6b62<br \/>\nAudio_Record.release();\/\/ \u91ca\u653e<br \/>\nAudio_Record = null;<br \/>\nAudio_Thread = null;<br \/>\n}} );<\/p>\n","protected":false},"excerpt":{"rendered":"<p>android\u5206\u8d1d\u4eea \u90bb\u5c45\u7684\u97f3\u54cd\u5f71\u54cd\u4f60\u7684\u7761\u7720?\u5de5\u5730\u7684\u566a\u97f3\u5f71\u54cd\u4f60\u7684\u542c\u529b? \u5229\u7528\u624b\u673a\u7684\u54aa\u514b\u98ce,\u6d4b\u91cf\u58f0\u97f3\u5f3a\u5ea6. \u4f60\u9700 &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/android_decibel\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">Android\u5206\u8d1d\u4eea<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[2],"class_list":["post-72","post","type-post","status-publish","format-standard","hentry","category-android","tag-android","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/72","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/comments?post=72"}],"version-history":[{"count":3,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/72\/revisions"}],"predecessor-version":[{"id":75,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/72\/revisions\/75"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=72"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=72"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=72"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}