iOS:流媒体大文件

时间:2012-01-25 18:20:19

标签: c# .net ios xamarin.ios filestream

我想从iOS设备的磁盘连续流式传输游戏的大型数据文件。 问题是,如果有人使用System.IO.FileStream之前已经流式传输此类文件(块20MB)。我没有iOS设备自己测试它,我不希望下次再使用它。

有两个问题:

  • 文件是否在没有完全加载的情况下进行流式传输(我期望从流中获得的行为,但我不确定MonoTouch的处理方式)以及流式传输时的内存使用情况如何?
  • 加载过程的性能如何,特别是在一次加载不同文件时?

感谢您提供任何信息。

1 个答案:

答案 0 :(得分:3)

MonoTouch基类库(BCL)来自Mono,所以很多代码都可以作为开源使用。在FileStream的情况下,您可以在github上看到代码。

  

文件是否在没有完全加载的情况下进行流式传输(我期望从流中获得的行为,但我不确定MonoTouch的处理方式)

你没错,它不会满载。你将控制正在阅读的内容。

  

流媒体时的内存使用情况如何?

上面的链接显示默认缓冲区大小设置为 8192 字节(8k),但是有几个构造函数允许您使用不同的大小(如果您愿意的话)。

  

流媒体时的内存使用情况如何?

但是那个缓冲区是一个内部缓冲区。当您调用Read之类的方法时,您将提供自己的缓冲区,这样您将再次控制正在使用的内存量。

  

加载过程的性能如何,特别是在一次加载不同文件时?

这很难预测,很大程度上取决于您的应用程序(例如文件数量,所需的总内存......)。您可以使用FileStream异步方法(如BeginRead)在必要时获得更好的性能。

相关问题