{"id":4138,"date":"2018-06-10T00:25:42","date_gmt":"2018-06-09T16:25:42","guid":{"rendered":"http:\/\/www.bookcard.net\/wordpress\/?p=4138"},"modified":"2018-06-10T00:25:42","modified_gmt":"2018-06-09T16:25:42","slug":"wave_read","status":"publish","type":"post","link":"https:\/\/www.bookcard.net\/wordpress\/wave_read\/","title":{"rendered":"WAV\u97f3\u6a94\u5206\u91cb\u8207\u8b80\u53d6"},"content":{"rendered":"<figure id=\"attachment_4139\" aria-describedby=\"caption-attachment-4139\" style=\"width: 1024px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/WAVE_READ.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-4139\" src=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/WAVE_READ.jpg\" alt=\"\" width=\"1024\" height=\"768\" srcset=\"https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/WAVE_READ.jpg 1024w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/WAVE_READ-300x225.jpg 300w, https:\/\/www.bookcard.net\/wordpress\/wp-content\/uploads\/2018\/06\/WAVE_READ-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption id=\"caption-attachment-4139\" class=\"wp-caption-text\">WAV\u97f3\u6a94\u5206\u91cb\u8207\u8b80\u53d6<\/figcaption><\/figure>\n<p>WAV\u97f3\u983b\u683c\u5f0f\u7531Electronic Arts(\u96fb\u5b50\u5354\u6703)\u5275\u5efa.\u5b83\u57fa\u65bc.IFF(Interchange File Format)\u5c0d\u7b49\u4ea4\u63db\u6587\u4ef6\u683c\u5f0f.\u5141\u8a31\u4e0d\u540c\u97f3\u6a94\u683c\u5f0f\u901a\u904e\u9472\u5957\u6280\u8853\u9032\u884c\u7de8\u78bc.<\/p>\n<p>\u4e0a\u5169\u7de8\u6587\u7ae0\u300e<a href=\"https:\/\/www.bookcard.net\/wordpress\/directsound\/\">DirectSound<\/a>\u300f\u8207\u300e<a href=\"https:\/\/www.bookcard.net\/wordpress\/directsound3d\/\">DirectSound3D<\/a>\u300f\u5747\u5f9eWAV\u97f3\u6a94\u4e2d\u8b80\u97f3\u983b\u6578\u64da.WAV\u97f3\u6a94\u597d\u518d\u65bc\u7d50\u69cb\u7c21\u55ae\u7121\u9700\u89e3\u58d3. \u6211\u5efa\u8b70\u5148\u628a\u6240\u6709WAV\u97f3\u6a94\u6578\u64da\u683c\u5f0f\u7d71\u4e00. \u6539\u70ba\u300e\u55ae\u8072\u9053Mono\u300f(\u56e0\u70ba\u4f60\u53ea\u6709\u4e00\u500b\u54aa\u982d)\u3001\u63a1\u6a23\u983b\u738711025Hz\u3001\u63a1\u6a23\u7cbe\u5ea68bit.\u5f8c\u518d\u7531\u904a\u6232\u5f15\u64ce\u8f09\u5165.<\/p>\n<p>.WAV\u6578\u64da\u7531\u4ee5\u4e0b\u4e09\u90e8\u4efd\u7d44\u6210:<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"277\">\u6578\u64da<\/td>\n<td width=\"277\">\u7c21\u5e8f<\/td>\n<\/tr>\n<tr>\n<td width=\"277\">RIFF<\/td>\n<td width=\"277\">.IFF\u6a19\u8a18<\/td>\n<\/tr>\n<tr>\n<td width=\"277\">FORMAT<\/td>\n<td width=\"277\">\u97f3\u983b\u683c\u5f0f<\/td>\n<\/tr>\n<tr>\n<td width=\"277\">DATA<\/td>\n<td width=\"277\">\u97f3\u983b\u6578\u64da<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"85\">RIFF\u6578\u64da<\/td>\n<td width=\"123\">\u6240\u5360\u7a7a\u9593(BYTE)<\/td>\n<td width=\"345\">\u7c21\u5e8f<\/td>\n<\/tr>\n<tr>\n<td width=\"85\">chunkID<\/td>\n<td width=\"123\">4<\/td>\n<td width=\"345\">\u584aID,\u5fc5\u9808\u70ba&#8217;RIFF&#8217;<\/td>\n<\/tr>\n<tr>\n<td width=\"85\">chunkSize<\/td>\n<td width=\"123\">4<\/td>\n<td width=\"345\">\u584a\u9577\u5ea6(\u4e0d\u5305\u542bchunkID[4]\u548cchunkSize\u6240\u5360\u7a7a\u9593)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"137\">FORMAT\u6578\u64da<\/td>\n<td width=\"128\">\u6240\u5360\u7a7a\u9593(BYTE)<\/td>\n<td width=\"289\">\u7c21\u5e8f<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">waveID<\/td>\n<td width=\"128\">4<\/td>\n<td width=\"289\">WAVE ID,\u5fc5\u9808\u70ba&#8217;WAVE&#8217;<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">chunkID<\/td>\n<td width=\"128\">4<\/td>\n<td width=\"289\">\u584aID,\u5fc5\u9808\u70ba&#8217;fmt &#8216;<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">chunkSize<\/td>\n<td width=\"128\">4<\/td>\n<td width=\"289\">\u584a\u9577\u5ea6(\u4e0d\u5305\u542bchunkID[4]\u548cchunkSize\u6240\u5360\u7a7a\u9593)<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">wFormatTag<\/td>\n<td width=\"128\">2<\/td>\n<td width=\"289\">\u58d3\u7e2e(\u683c\u5f0f)\u6a19\u8a8c\u9ed8\u8a8dWAVE_FORMAT_PCM\u8108\u885d\u7de8\u78bc\u683c\u5f0f<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">wChannels<\/td>\n<td width=\"128\">2<\/td>\n<td width=\"289\">\u8072\u9053:\u300e\u55ae\u8072\u9053Mono\u300f\u6216\u300e\u96d9\u8072\u9053Stereo\u300f<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">dwSamplesPerSec<\/td>\n<td width=\"128\">4<\/td>\n<td width=\"289\">\u63a1\u6a23\u983b\u7387(11025Hz,22050Hz,44100Hz)<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">dwAvgBytesPerSec<\/td>\n<td width=\"128\">4<\/td>\n<td width=\"289\">\u6bcf\u79d2\u64ad\u653e\u5b57\u7bc0\u6578(SamplesPerSec * BlockAlign)<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">wBlockAlign<\/td>\n<td width=\"128\">2<\/td>\n<td width=\"289\">\u5b57\u7bc0\u5c0d\u9f4a,\u55ae\u8072\u90538bit\u53601byte.\u96d9\u8072\u905316bit\u53604yte.<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">wBitsPerSample<\/td>\n<td width=\"128\">2<\/td>\n<td width=\"289\">\u6bcf\u500b\u63a1\u6a23\u9ede\u4f4d\u7cbe\u5ea6.\u67098bit\u300116bit\u300124bit\u300132bit<\/td>\n<\/tr>\n<tr>\n<td width=\"137\">information<\/td>\n<td width=\"128\">2<\/td>\n<td width=\"289\">\u9644\u52a0\u4fe1\u606f(\u672a\u5fc5\u6709\u6b64\u6578\u64da)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td width=\"132\">\u6578\u64da\u584a<\/td>\n<td width=\"123\">\u6240\u5360\u7a7a\u9593(BYTE)<\/td>\n<td width=\"298\">\u7c21\u5e8f<\/td>\n<\/tr>\n<tr>\n<td width=\"132\">chunkID<\/td>\n<td width=\"123\">4<\/td>\n<td width=\"298\">\u584aID,\u5fc5\u9808\u70ba&#8217;data&#8217;<\/td>\n<\/tr>\n<tr>\n<td width=\"132\">chunkSize<\/td>\n<td width=\"123\">4<\/td>\n<td width=\"298\">\u97f3\u983b\u6578\u64da\u9577\u5ea6<\/td>\n<\/tr>\n<tr>\n<td width=\"132\">Data<\/td>\n<td width=\"123\">chunkSize<\/td>\n<td width=\"298\">\u97f3\u983b\u6578\u64da<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u8b80\u53d6WAV\u6578\u64da.wav\u6307\u5411\u6587\u6a94\u6578\u64da.size\u70ba\u6587\u6a94\u9577\u5ea6<\/p>\n<p>bool Load_WAV(SOUND3D_PTR sound3D, PBYTE wav, int size){<\/p>\n<p>1.\u6578\u683c\u584a<\/p>\n<p>RIFF_PTR\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 riff;<\/p>\n<p>WAVE_FORMAT_PTR\u00a0\u00a0 format;<\/p>\n<p>WAVE_DATA_PTR\u00a0\u00a0\u00a0\u00a0 data;<\/p>\n<p>2.\u8b80\u53d6RIFF\u6578\u64da<\/p>\n<p>riff = (RIFF_PTR)wav;<\/p>\n<p>3.\u5224\u65b7\u662f\u5426RIFF<\/p>\n<p>if (riff-&gt;id != WAVE_RIFF_ID)<\/p>\n<p>return false; \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ \u8fd4\u56de\u51fa\u932f!<\/p>\n<p>4.\u8b80\u53d6WAVE_FORMAT_CHUNK<\/p>\n<p>format = (WAVE_FORMAT_PTR)((PBYTE)wav + sizeof(RIFF));<\/p>\n<p>if (format-&gt;waveID != WAVE_ID ||<\/p>\n<p>format-&gt;chunkID != WAVE_FMT_ID ||<\/p>\n<p>format-&gt;wFormatTag != WAVE_FORMAT_PCM)<\/p>\n<p>return(false); \u00a0 \/\/ \u8fd4\u56de\u51fa\u932f!<\/p>\n<p>5.\u8b80\u53d6\u6578\u64da\u584a<\/p>\n<p>data = (WAVE_DATA_PTR)((PBYTE)wav + sizeof(RIFF) + (int)format-&gt;chunkSize + sizeof(WAVE_CHUNK));<\/p>\n<p>if (data-&gt;chunkID != WAVE_DATA_ID)<\/p>\n<p>return(false); \u00a0 \/\/ \u8fd4\u56de\u51fa\u932f!<\/p>\n<p>6.\u7372\u53d6\u97f3\u983b\u6578\u64da<\/p>\n<p>PBYTE audio = (PBYTE)malloc(data-&gt;chunkSize);<\/p>\n<p>memcpy(audio, &amp;data-&gt;data, data-&gt;chunkSize);<\/p>\n<p>return true;<\/p>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WAV\u97f3\u983b\u683c\u5f0f\u7531Electronic Arts(\u96fb\u5b50\u5354\u6703)\u5275\u5efa.\u5b83\u57fa\u65bc.IFF(Interchange Fil &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.bookcard.net\/wordpress\/wave_read\/\" class=\"more-link\">\u7e7c\u7e8c\u95b1\u8b80 <span class=\"screen-reader-text\">WAV\u97f3\u6a94\u5206\u91cb\u8207\u8b80\u53d6<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[42],"class_list":["post-4138","post","type-post","status-publish","format-standard","hentry","category-windows","tag-computer","entry"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4138","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=4138"}],"version-history":[{"count":1,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4138\/revisions"}],"predecessor-version":[{"id":4140,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/posts\/4138\/revisions\/4140"}],"wp:attachment":[{"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/media?parent=4138"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/categories?post=4138"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bookcard.net\/wordpress\/wp-json\/wp\/v2\/tags?post=4138"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}