2014-10-21 37 views
0

有没有什么办法,使用Cocoa(touch)上的当前可用的SDK框架来创建一个流式解决方案,我将在某些服务器上托管我的mp4内容并将其流式传输到我的iOS客户端应用程序?iOS8 CloudKit是否支持幕后流媒体?

我知道如何编写这样一个客户端,但它在服务器端有点令人困惑。

AFAIK cloudKit不适合该任务,因为它在后台保留了一个同步的本地数据存储副本,这不是我想要的。我想远程存储媒体内容并将其流式传输到客户端,以便它不会占用可怜的16 GB iPad mini上的宝贵空间。

我可以使用Objective-C/Cocoa Touch完成该服务器解决方案吗?

我应该改用Azure和C#吗?

回答

1

你为什么会做这样的事情这不是100%清楚了吗?

如果你有在服务器端控制,你为什么不只是建立了一个基本的HTTP服务器,并在客户端使用AVPlayer来获取MP4和回放给用户?这很简单。一个基本的Apache安装程序可以完成这项工作。

如果要传输实时媒体内容,那么就值得阅读本指南,以及: https://developer.apple.com/Library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/StreamingMediaGuide.pdf

您的评论后编辑:

如果你想使用AVPlayer作为一名球员,那么我认为这两件事情不太适合。 AVPlayer需要提前缓冲不同的范围(对于某些容器格式,第二个/第三个请求正在读取流的末尾)。据我所见CKFetchRecordsOperation(您将用于从服务器获取内容)不能在流中查找。

如果您的私人播放器不需要搜索,那么您可以使用CKFetchRecordsOperation的perRecordProgressBlock为您的播放器提供数据。

+0

我要创造我的私有云将承载视频,让我的家人可以通过自定义客户端iOS应用观看。我想要一个自定义应用程序,因为没有可用的解决方案,如共享的照片流,youtube app..et..etc等等。我不希望这些视频在iPad上占用千兆字节的空间。 (全部有16GB版本......) – yonderboy 2014-10-23 13:58:24

0

是的,你可以用CloudKit来做到这一点。首先,CloudKit保留数据的本地副本并非如此。下载的数据由您做什么决定。 CloudKit中甚至没有任何缓存。

做你想要做什么,假设内容是用户之间共享,你可以把它上传到CloudKit在您的应用程序的公共数据库。我认为你可以通过CloudKit网络界面来完成此操作,但除此之外,你可以创建一个简单的Mac应用来管理上传。

客户端应用程序可以下载文件。据我所知,它无法流动它们。它将不得不下载所有的文件。

如果你想要一个流媒体解决方案,你可能必须弄清楚如何将文件分割成小块,并重组他们的客户端应用程序。

+0

也许你错过了这一点,但我在我原来的帖子中强调,我不希望它占据本地空间。当你说下载你真的意味着下载或实际上流? – yonderboy 2014-10-23 14:00:10

+1

我的想法是,你不会下载所有的文件,但只要下载一个,当你想播放它,临时存储,然后删除它。 – 2014-10-24 14:23:39

0

我不确定这document是否是最新版本,但如果您提供任何超过10分钟的视频,则需要使用HTTP实时流传输的段落“应用程序的要求”。或5MB。

+0

谢谢。在我的情况下,我不会在乎,因为它只是为了家庭目的,所以我会通过Testflight推动并做任何我想要的事情而不用Apple监督。 – yonderboy 2014-10-29 10:29:14