今、音声ファイルを再生するソフトを制作していたものに追加で、
選択した音声ファイルを結合させて新たな音声ファイルを作る機能を
つけたいと考えています。
ですが調べてみても、音声ファイルを出力する方法というのが
なかなか見つからず、1つwave方式で出力するものを見つけたのですが
同じwave方式でないと結合できないそうです。
何か良い方法に思い当たる方はいないでしょうか?
*今できれば対応させたいと思っているのは、
windows mciで読み込み可能な
.wav、.aif、.mp3、.m4a、.aac、.wma、.mid
です。 もちろんすべてに対応するような万能な物があるとは考えにくいですが、 できればmp3とm4aには対応してほしいです。 *参考にさせていただいたスクリプトも記述しておきます。
file_a = "1.wav" // 1つ目のファイル名 file_b = "2.wav" // 2つ目のファイル名 file_c = "c.wav" // 出力ファイル名 //1つ目のファイルロード exist file_a a_size=strsize sdim a,a_size bload file_a,a,a_size //2つ目のファイルロード exist file_b b_size=strsize sdim b,b_size bload file_b,b,b_size a_len0 = lpeek(a,16)+24 // RIFFチャンクサイズ + FMTチャンクサイズ + DATAチャンクの4バイト b_len0 = lpeek(b,16)+24 // 同上 a_len=lpeek(a, a_len0) // DATAチャンクの波形データのサイズ b_len=lpeek(b, b_len0) // 同上 c_size=a_size+b_len // 出力ファイルサイズ ファイルaのサイズ + ファイルbの波形データサイズ c_len=a_len+b_len // 2つのファイルの波形データのサイズ合計 sdim c,c_size // 出力ファイルサイズで初期化 memcpy c,a,a_size // ファイルaはそのままコピー memcpy c,b,b_len,a_size,b_len0+4 // 後ろにbのデータのみをコピー lpoke c,4,c_size-8 // ファイルサイズの更新 lpoke c,a_len0,c_len // 波形データサイズの更新 bsave file_c,c,c_size //保存 mes "連結保存終了"
回答よろしくお願いします。