我音頻小白擡起波文件體積與n音訊
我期待通過將數據作爲一個字符串,如 <音頻SRC =「數據嵌入在HTML頁中的音頻:音頻/ WAV; BASE64 ,AA .....「/> 這樣做的工作,但我需要提高音量。我嘗試過使用NAudio,但它似乎會進行一些轉換,並且不再播放。這是我用來提高音量的代碼:
public string ConvertToString(Stream audioStream)
{
audioStream.Seek(0,SeekOrigin.Begin);
byte[] bytes = new byte[audioStream.Length];
audioStream.Read(bytes,0,(int)audioStream.Length);
audioStream.Seek(0,SeekOrigin.Begin);
return Convert.ToBase64String(bytes);
}
var fReader = new WaveFileReader(strm);
var chan32 = new WaveChannel32(fReader,50.0F,0F);
var ouputString = "data:audio/wav;base64," + ConvertToString(chan32);
但是當我把outputString放入一個音頻標籤時,它無法播放。 NAudio做了哪些類型的轉換,以及如何讓它獲得音頻流,以便我可以序列化它並讓瀏覽器能夠播放它? 還是其他建議:如果n音訊權重股如調高音量什麼的對我來說是更好的選擇,因爲簡單的東西嗎?
這不是頭,但你我指出了正確的方向。我看到waveChannel32將編碼更改爲ieeefloat(chrome只支持pcm)。提高音量(或將其轉換回pcm)最簡單的方法是什麼?在這一點上,我不關心表現(儘管我把音量降低到了10)。正如我所說的, – Fragilerus 2013-03-06 00:45:05
,調整音量後使用Wave32To16Stream找回16位PCM。 10仍然會剪輯。 1.0意味着根本不改變樣品的值。 2.0會使它們翻一番。 16位樣本的最大值是32767,所以如果將它們全部乘以10,那麼3277以上的任何值都將被剪切。 – 2013-03-06 08:21:29
這並沒有解決我的問題,但我將其標記爲接受的,因爲有一些很好的意見,並沒有其他人給了一個更好的解決方案。看起來我試圖用一把大錘打破堅果來完成像我這樣的簡單任務。 NAudio是一個功能全面的庫,對於我的需求來說太複雜了。我會找到一個不同的解決方案。 – Fragilerus 2013-03-10 02:10:41