Wav File asp.net c#网络表单

本文关键字:网络 表单 net File asp Wav | 更新日期: 2023-09-27 17:58:31

如何在c#asp.net web表单中播放wav文件格式(A-Law,8000 Hz,64 Kbps,mono)。

c#asp.net仅支持播放wav PCM格式

Wav File asp.net c#网络表单

使用HTML5来实现这一点。它支持WAV文件:)

看看这个:http://www.w3schools.com/html/html5_audio.asp

注意:请注意,并非所有浏览器都支持WAV文件。您可以在该页面上找到更多详细信息!

创建自己的a-law播放器非常困难,这需要对算法有深入的了解。幸运的是,有SoX等工具可以帮助您将该文件转换为所需的.wav格式。

这是我写的一个函数,可以将u-law文件转换为wav格式,这样我就可以读取

    /// <summary>
    /// Generates the sound file using SoX.exe.
    /// </summary>
    /// <param name="fromFile">From file in uLaw encoding.</param>
    /// <param name="toFile">To wav file.</param>
    public bool GenerateSoundFile(string fromFile, string toFile)
    {
        string log = string.Format("fromFile={0},toFile={1}", fromFile, toFile);
        //EventLogger.Log(log);
        string arguments;
        //check the extension
        string ext = Path.GetExtension(fromFile);
        if (ext == ".ulaw")
        {
            arguments = string.Format("-t ul {0} -c 1 -r 8000 {1}", fromFile, toFile);
        }
        else
        {
            arguments = string.Format(" {0} -c 1 -r 8000 {1}", fromFile, toFile);
        }
        //EventLogger.Log(arguments);
        string command = System.Environment.CurrentDirectory + "''sox.exe";
        try
        {   
            Process p = new Process();
            p.StartInfo.UseShellExecute = false;
            p.StartInfo.RedirectStandardOutput = true;
            p.StartInfo.FileName = command;
            p.StartInfo.Arguments = arguments;
            p.StartInfo.LoadUserProfile = true;
            p.Start();
            string output = p.StandardOutput.ReadToEnd();
            p.WaitForExit();
        }
        catch (Exception e)
        {
            EventLogger.Error("GenerateSoundFile", e);
        }
        //check output file exists           
        if (!File.Exists(toFile))
        {
            //EventLogger.Error("No output sound file generated");
            return false;
        }
        else
        {
            return true;
        }
    }