C# 由于长度事先未知,如何录制到流?
我正在尝试使用实时媒体输入,为此,我试图了解记录到流(例如)的方法如何工作,因为它们在开始时不知道输入的长度,而像WAV这样的文件类型在实际数据之前需要这些信息C# 由于长度事先未知,如何录制到流?,c#,.net,audio,stream,uwp,C#,.net,Audio,Stream,Uwp,我正在尝试使用实时媒体输入,为此,我试图了解记录到流(例如)的方法如何工作,因为它们在开始时不知道输入的长度,而像WAV这样的文件类型在实际数据之前需要这些信息 说清楚一点,我可以理解保存到文件的方法是如何工作的——它们可能只是在以后填写这些信息。但是,当输入流时-他们如何解决这个问题?只有他们确切地知道如何解决这个问题,但合理的假设是,他们将音频数据写入输出流,保留大小为空,录制完成后,他们查找到文件的开头,并更新大小 如果您仔细阅读文档,您会注意到文档上写着: 开始录制到随机访问流 这几乎可
说清楚一点,我可以理解保存到文件的方法是如何工作的——它们可能只是在以后填写这些信息。但是,当输入流时-他们如何解决这个问题?只有他们确切地知道如何解决这个问题,但合理的假设是,他们将音频数据写入输出流,保留大小为空,录制完成后,他们
查找到文件的开头,并更新大小
如果您仔细阅读文档,您会注意到文档上写着:
开始录制到随机访问流
这几乎可以肯定,因为他们需要能够从头开始更新标题。该文档确实说了“到随机访问流”,因此推测代码稍后也可以填补空白。@LasseV.Karlsen听起来不错。但这意味着,如果流被中断,数据可能会损坏。(当然不是不可能)那可能是。我真的不知道,我只是阅读了你链接到的文档,并给出了我2美分的评论。我不知道录音将如何处理这些事情,除了我很容易理解,如果只是一个数据包一个数据包的格式,而不是一个终止符,它将如何做到这一点。这取决于流协议。。。对于http直播(HLS),媒体被分解为6秒的剪辑,这些剪辑由发送服务器生成,作为一系列可检索的文件。。。清单文件由发送方生成,并由接收客户端重复读取,接收客户端将这些文件列为URL。。。这对于没有长度概念的现场活动非常有效。。。在接收端,它解析每6秒的下载,并将其缝合成无缝媒体流,用于音频渲染或录制。。。HLS使用AAC,但是对于您在事后查找和更新长度的WAV输出文件