iT邦幫忙

0

(已解決)php 去 wav 檔頭

想請教大家,
我要將 wav 音檔去檔頭(前 44 bytes),存成 pcm 音檔,
但目前轉出來的 pcm 結果聽起來不知道為什麼變雜音,
程式碼如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
  $file_name = "testFile.wav";
  $file = fopen($file_name,"r");
  $wavBytes = fread($file,filesize($file_name));
  
  $pcmBytes = substr($wavBytes, 45);

  $fp = fopen("testFile.pcm",'w');
  fwrite($fp,$pcmBytes);

  fclose($file);
  fclose($fp);
?>
</body>
</html>

/images/emoticon/emoticon41.gif

看更多先前的討論...收起先前的討論...
小魚 iT邦大師 1 級 ‧ 2017-12-27 12:05:26 檢舉
PHP我不熟,
不過你如果把45改成44會有用嗎?
小斑 iT邦新手 3 級 ‧ 2017-12-27 14:08:49 檢舉
剛剛試了一下,可以耶,真是太感謝您了
fillano iT邦超人 1 級 ‧ 2017-12-27 14:14:58 檢舉
改用:
http://php.net/manual/en/function.file-get-contents.php
試試看,他可以從指定的位置開始讀檔,讀取指定的長度。

另外,小魚的提示很重要...指定位置通常都是zero base,你給45的話,就會少一個byte。
小斑 iT邦新手 3 級 ‧ 2017-12-27 15:41:09 檢舉
好的,謝謝
原來PHP也可以拿來操作音訊檔案阿@@
題外話,樓上的大大們都好客氣不用回答只用討論~
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答