PHP Ver5.1.6 の質問です

まず、fread 関数を使って wav(音声) を読み込みました。
この wav の音声データ部分を操作したいと思います。
具体的には、特定のパターンを探し出して、加工(四則演算)したいと思います。
パターンを探し出すことは pack と unpack を使って成功しているのですが、見つけ出した位置のデータを更新する方法が分かりません。
substr で切り出せば出来るんですが、処理が複雑になるので、c 言語のポインタのような感じで操作できないかと考えています。
ちなみに、wav は、pcm の 32ビットのモノラル データです。
#wav ファイルそのものの操作方法ではなくて、読み込んだデータの特定位置を上書する方法が分かれば結構です。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/12/31 14:59:14
  • 終了:2008/12/31 16:46:10

回答(1件)

id:GoldenDawn No.1

GoldenDawn回答回数426ベストアンサー獲得回数812008/12/31 16:04:34

ポイント60pt

kn1967 さんのコメントのように substr_replace を使うか、

$data[$p] = chr($newdata) ;

とか。


http://q.hatena.ne.jp/

id:rikimaru

バイトデータだと配列でも操作できるんですね

ありがとうございます

kn1967 さんの回答だと、sbustr と組み合わせれば、近いこと出来そうですね

とりあえず、課題として、PHP で、どのあたりまでバイナリ処理できるかと挑戦中ですので、Cでやれば簡単なんですが、あえてイバラの道を進んでます

2008/12/31 16:45:58
  • id:rikimaru
    先ほどの質問を強化してみました(ご指摘頂きました方、ありがとうございました)
  • id:kn1967
    substr_replace で置き換えれば?などと回答してみたくもなりましたが
    Cのポインタという話から、お望みの処理を類推すると・・・
    wavファイルを先頭から順次、読み込み&処理しながら
    別ファイルに書き出すのがよろしいのかな?などとも思います。
    (と言うよりもCでやれば?という話になっていきそう・・・。)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません