繁体   English   中英

如何在naudio中逐帧直播mp3帧

[英]How to live stream mp3 frames by frames in naudio

我正在尝试在录制时以mp3格式实时流式传输音频,但是我无法获得良好的流式传输质量。

我正在做的是从“ WI_DataAvailable”获取10秒的PCM数据,并将其转换为MP3,然后在网络中发送帧。 在10秒的数据之间,它几乎不会产生静音。

我喜欢在录制时逐帧连续播放mp3帧。 有什么适当的方法吗?

鉴于LameMP3FileWriter需要写入一个Stream,我建议您实现自己的流类,并简单地将Write方法中到达的所有数据Write UDP。 然后,您可以将其传递给LameMP3FileWriter。

这是一个基本的流类,应该使您入门。 您需要填写Write方法的空白,可能还需要填写Flush 我想您可以将其他所有内容保留为NotImplemented。

public class UdpStream:Stream
{
    public override int Read(byte[] buffer, int offset, int count)
    {
        //you'll definitely need to implement this...
        //write the buffer to UDP
    }

    public override void Flush()
    {
        //you might need to implement this
    }

    public override bool CanRead
    {
        get { return false; }
    }

    public override bool CanSeek
    {
        get { return false; }
    }

    public override bool CanWrite
    {
        get { return true; }
    }

    public override long Seek(long offset, SeekOrigin origin)
    {
        throw new NotImplementedException();
    }

    public override void SetLength(long value)
    {
        throw new NotImplementedException();
    }


    public override void Write(byte[] buffer, int offset, int count)
    {
        throw new NotImplementedException();
    }

    public override long Length
    {
        get { throw new NotImplementedException(); }
    }

    public override long Position { 
        get{throw new NotImplementedException();} 
        set{throw new NotImplementedException();} 
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM