C#:音声ファイルWMAの解析 part-1
2015/12/29
どうしても音声ファイルを分割したいと思っているのですが、C#ライブラリにそんな都合の良いものがあるわけではないので、自分でバイトコードを解析してやろうと思った次第。
まずは下記のようなコードで1000KBで単純分割したところ、2つめ以降の分割ファイルをダブルクリックしてもエラー出て聞けませんでした。(まあそんなところでしょう)
1つ目はきちんと音声が聞けるので、ファイルの先頭にヘッダー情報があることがわかります。(まあこれも想定内)
調べてみると、WMAのヘッダー情報は可変長らしく、そうなるとヘッダーと波形データとを区別するキーを探さなければなりません。簡単ではなさそうですね。
今日はここまで。次回続く。
ソースコード(引用元からコピペしています)
引用元:http://www.atmarkit.co.jp/fdotnet/dotnettips/670readallbytes/readallbytes.html
using System.IO;
using System.Text;
class BinarySplit {
static void Main() {
byte[] src = File.ReadAllBytes(“001.wma”);
int FILESIZE = 1024 * 1000; // 分割サイズ
int num = 0;
for (int remain = src.Length; remain > 0; remain -= FILESIZE) {
int length = Math.Min(FILESIZE, remain);
byte[] dest = new byte[length];
Array.Copy(src, num * FILESIZE, dest, 0, length);
string name = String.Format(“out{0:D4}.wma”, num + 1);
File.WriteAllBytes(name, dest);
num++;
}
}
}
スポンサーリンク