小编Liq*_*ony的帖子

将通过HTTP流式传输的wav实时转换为mp3

背景:我正在使用一个返回MIME类型为的数据的服务audio/wav.我需要为这个音频提供一个播放机制(目前作为MVC应用程序构建).举个例子,我的端点看起来像https://audio.fooservice.com/GetAudio?audioId=123

音频为8kHz,1通道u-law.

由于使用HTML5 <audio>标记时浏览器的格式支持不同,我无法使用原始的u-law wav,因为Internet Explorer不会播放它.

我提出的解决方案是从源格式到mp3进行实时转换.

我在这里和NAudio论坛中拼凑了一个部分工作的解决方案来解决各种其他问题,但它引发了一个例外情况,如下面的评论中所述:

private void NAudioTest(string url)
{
    Stream outStream = new MemoryStream();
    var format = WaveFormat.CreateMuLawFormat(8000, 1);

    using (Stream ms = new MemoryStream())
    {
        var request = (HttpWebRequest)WebRequest.Create(url);
        request.KeepAlive = false;
        request.ProtocolVersion = HttpVersion.Version10;

        using (Stream stream = request.GetResponse().GetResponseStream())
        {
            using (var reader = new RawSourceWaveStream(stream, format))
            {
                // reader is not seekable; we need to convert to a byte array to seek
                var bytes = reader.ToByteArray(); …
Run Code Online (Sandbox Code Playgroud)

.net c# http naudio lame

5
推荐指数
1
解决办法
2363
查看次数

标签 统计

.net ×1

c# ×1

http ×1

lame ×1

naudio ×1