Home
フォーラム
Coron質問
WAVファイルの再生について
引用付き投稿返答 :WAVファイ...
Android事業
実績紹介
製品紹介
フォーラム
会社概要
お問い合わせ
メインメニュー
Home
Android事業
Android+Robot
GDD2011出展
Android アプリ開発
ロボット事業
製品情報
Go Simulation!
Coroid
Coron
フォーラム
ショップ
会社概要
会社情報
アクセス
採用情報
サイトマップ
ログイン
社長ブログ
引用付き投稿返答 :WAVファイルの再生について
ユーザー名
件名:
post_text_textarea
[admin2 2009-10-09 11:04:42]:
<p>ブツっっという音はWAVファイルの出力値の繋ぎ部分で、0x00(WAVファイルの出力値1Byte目と最後のbyte)と0x80(WAVファイルの無音時の値)の切り替わる時に出る音だと思うので、以下の2つの対処をすれば消えると思います。</p><p>①WAVファイルの最初と最後の出力値を切り捨てる</p><p>(連続再生時にWAVファイルが無音で始まり、無音で終わっていれば、スムーズに音が繋がる)</p><p> </p><p>②初期化時にDAC出力を許可して、0x80を出力しておいて、以降DAC出力を許可のまま固定する</p><p>(一番初めのWAVファイル再生時にもブツッと音を再生させなくする)</p><p> </p><p>①について</p><p>[coron_sdwav.c]のSD_play_wav()関数内を以下のように変更してください。</p><p>//=============================<br />// SDカードWAVファイル再生(セクタ番号)<br />//=============================<br />void SD_play_wav(u8 wav_num){<br /> u32 size;<br /> u32 sct,sec_num,n,i;<br /> size =wav_size[wav_num];<br /> sct =wav_sector_num[wav_num];<br /> <br /> /* TIM5 enable counter */<br /> TIM_Cmd(TIM5, ENABLE); <br /> <br /> sec_num=(size/512)+1;<br /> <br /> //最初のセクタだけヘッダ分を飛ばす<br /> SD_read(sct*512);<br /> for(i=0;i<0x3a;i++){sound_buf[0][i]=0x80;}<br /> for(i=0x3a;i<512;i++){sound_buf[0][i]=buf512[i];}<br /> sound_flag=1;</p><p> for(n=1;n<(sec_num-1);n++){<br /> SD_read(512*(n + sct));<br /> if(sound_flag==2){<br /> for(i=0;i<512;i++){sound_buf[0][i]=buf512[i];}<br /> while(sound_flag==2){read_flag=1;}<br /> read_flag=0;<br /> }<br /> else if(sound_flag==1){<br /> for(i=0;i<512;i++){sound_buf[1][i]=buf512[i];}<br /> while(sound_flag==1){read_flag=1;}<br /> read_flag=0;<br /> }<br /> }<br /> sound_flag=0;</p><p> /* TIM5 disable counter */<br /> TIM_Cmd(TIM5, DISABLE); <br />}</p><p> //ここまで</p><p> </p><p>②について</p><p>[coron_sound.c]のSPK_init()関数内、最後の部分を以下のように変更してください。</p><p><Before></p><p> /* Dissable DAC Channel1 */<br /> DAC_Cmd(DAC_Channel_1, DISABLE);</p><p><After></p><p> /* Ensable DAC Channel1 */<br /> DAC_Cmd(DAC_Channel_1, ENABLE);<br /> DAC_SetChannel1Data(DAC_Align_8b_R,0x80);<br /> DAC_SoftwareTriggerCmd(DAC_Channel_1, ENABLE);</p><p> //ここまで</p><p> </p><p>①に関しては最後のByteの切り捨て方が少し強引なので(最後のセクタごと切り捨て)、最大で約50分の1秒(20msec分)ほど最後音声再生が切り捨てられる可能性がありますので注意してください。</p><p> </p><p>これらの対処をしてもブツッっと出てしまう場合は、お手数ですが再度ご報告お願い致します。</p>
セキュリティ:
プレビュー
保存
キャンセル
引用付き投稿返答 :WAVファイルの再生について
User
Powered by
ccBoard