Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 由于长度事先未知,如何录制到流?_C#_.net_Audio_Stream_Uwp - Fatal编程技术网

C# 由于长度事先未知,如何录制到流?

C# 由于长度事先未知,如何录制到流?,c#,.net,audio,stream,uwp,C#,.net,Audio,Stream,Uwp,我正在尝试使用实时媒体输入,为此,我试图了解记录到流(例如)的方法如何工作,因为它们在开始时不知道输入的长度,而像WAV这样的文件类型在实际数据之前需要这些信息 说清楚一点,我可以理解保存到文件的方法是如何工作的——它们可能只是在以后填写这些信息。但是,当输入流时-他们如何解决这个问题?只有他们确切地知道如何解决这个问题,但合理的假设是,他们将音频数据写入输出流,保留大小为空,录制完成后,他们查找到文件的开头,并更新大小 如果您仔细阅读文档,您会注意到文档上写着: 开始录制到随机访问流 这几乎可

我正在尝试使用实时媒体输入,为此,我试图了解记录到流(例如)的方法如何工作,因为它们在开始时不知道输入的长度,而像WAV这样的文件类型在实际数据之前需要这些信息


说清楚一点,我可以理解保存到文件的方法是如何工作的——它们可能只是在以后填写这些信息。但是,当输入流时-他们如何解决这个问题?

只有他们确切地知道如何解决这个问题,但合理的假设是,他们将音频数据写入输出流,保留大小为空,录制完成后,他们
查找到文件的开头,并更新大小

如果您仔细阅读文档,您会注意到文档上写着:

开始录制到随机访问流


这几乎可以肯定,因为他们需要能够从头开始更新标题。

该文档确实说了“到随机访问流”,因此推测代码稍后也可以填补空白。@LasseV.Karlsen听起来不错。但这意味着,如果流被中断,数据可能会损坏。(当然不是不可能)那可能是。我真的不知道,我只是阅读了你链接到的文档,并给出了我2美分的评论。我不知道录音将如何处理这些事情,除了我很容易理解,如果只是一个数据包一个数据包的格式,而不是一个终止符,它将如何做到这一点。这取决于流协议。。。对于http直播(HLS),媒体被分解为6秒的剪辑,这些剪辑由发送服务器生成,作为一系列可检索的文件。。。清单文件由发送方生成,并由接收客户端重复读取,接收客户端将这些文件列为URL。。。这对于没有长度概念的现场活动非常有效。。。在接收端,它解析每6秒的下载,并将其缝合成无缝媒体流,用于音频渲染或录制。。。HLS使用AAC,但是对于您在事后查找和更新长度的WAV输出文件