音频可视化工具C#

Audio Visualizer C#

本文关键字:工具 可视化 音频      更新时间:2023-09-26

我正在用C#/Asp.net/JavaScript(作为一个网站)编写一个音频可视化工具。由于我的动画应该随着音乐流畅地移动,我认为在后面的代码中预处理MP3,将值/频率写入文本文件或其他文件,然后使用javascript读取值并相应地修改动画会更有意义。基本上,我想做一些类似酒吧的事情:https://lh4.ggpht.com/Qhm4EeDUgVlvLcX4MiZ1idGDUo5cD5PmLAIZIfnJlilzU789OPXAUK_emJSOT3CK4Vs=h900我需要一些数值作为小节的高度,它应该随着音乐的继续而变化。我正在使用Naudio。这是我的代码:

using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using NAudio;
using System.IO;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MP3toWAV(MapPath("~/Music/UctfnI6yUPM.mp3"), MapPath("~/Music/UctfnI6yUPM.wav"));
        Strip(MapPath("~/Music/UctfnI6yUPM.wav"));
    }
    public void MP3toWAV(string file,string output)
    {
        using (NAudio.Wave.Mp3FileReader reader = new NAudio.Wave.Mp3FileReader(file))
        {
            NAudio.Wave.WaveFileWriter.CreateWaveFile(output, reader);
        }
    }
    public void Strip(string path)
    {
        NAudio.Wave.WaveChannel32 wave = new NAudio.Wave.WaveChannel32(new NAudio.Wave.WaveFileReader(path));
        byte[] buffer = new byte[8192];
        int read = 0;
        StreamWriter writer = new StreamWriter(MapPath("~/Result.txt"));
        while (wave.Position < wave.Length)
        {
            read = wave.Read(buffer, 0, 8192);
            for (int i = 0; i < read / 4; i++)
            {
                writer.Write(BitConverter.ToSingle(buffer, i * 4));
            }
        }
    }
}

以下是pastebin的部分输出:http://pastebin.com/Ve5tym20我无法复制整件事,因为它是一个约90 MB的文本文件。我不太确定我应该如何使用这些数据,以及这是否是正确的数据。在过去的几天里,我一直在研究如何做到这一点。我看过Mark Heath关于自动调谐的文章,也看过BandedSpectrumAnalyzer项目。我从这篇文章中得到了很多代码,但BandedSpectrumAnalyzer项目让我有点困惑(我不知道它的哪一部分做了什么)请帮忙???

由于您希望在浏览器中构建EQ可视化,我建议您使用WebAudio HTML5 API,而不是服务器端方法。您可以使用WebAudio api 轻松操作mp3和其他文件类型

您可以在网上找到许多如何使用API的示例。这里列出了一些不错的例子:http://webaudio.github.io/demo-list/

API目前仅在Chrome、Firefox和Safari中受支持。我相信IE很快就会跟上。http://caniuse.com/#feat=audio-api

以下是一个对您的案例有帮助的示例,它支持所有浏览器:http://www.smartjava.org/content/exploring-html5-web-audio-visualizing-sound