在iOS上通过WiFi和蓝牙流式传输视频
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在iOS上通过WiFi和蓝牙流式传输视频相关的知识,希望对你有一定的参考价值。
这个问题将非常通用,因为我是ios,视频流和蓝牙(将成为一个有趣的项目)的新手。
基本上我希望能够通过WiFi或蓝牙将低分辨率视频从一个iOS设备流式传输到另一个iOS设备,具体取决于哪个可用。 Bonjour用于初始服务发现。 (我知道通过蓝牙传输视频是不理想的,但这是项目的要求之一)
所以问题是可以使用什么视频流框架/库来最大化通过WiFi的流视频和通过蓝牙的流视频之间共享的代码量。
答案
以下是通过Multipeer Connectivity测试视频流的说明:
你需要Cocoapods,如果还没有安装它,请去http://cocoapods.org/#install
- 从https://github.com/pj4533/AVCaptureMultipeerVideoDataOutput克隆发射器
- 导航到终端中的
AVCaptureMultipeerVideoDataOutput/Sample
目录并执行pod install
- 从https://github.com/pj4533/SGSMultipeerVideoMixer克隆接收器
- 在物理设备中运行发射器,您将在屏幕上看到后置摄像头
- 在模拟器或物理设备中运行一个或多个接收器,发射器的图像应出现在接收器中。
注意:Multipeer Connectivity需要iOS 7,并且两个设备都应该启用WiFi或蓝牙,我已经在WiFi上成功测试过,蓝牙可能太慢了。
另一答案
我建议使用MultipeerConnectivity
框架。以下是MCSessionDelegate
提供的一些委托方法
MCSessionDelegate <NSObject>
// Received a byte stream from remote peer
- (void)session:(MCSession *)session didReceiveStream:(NSInputStream *)stream withName:(NSString *)streamName fromPeer:(MCPeerID *)peerID;
// Start receiving a resource from remote peer
- (void)session:(MCSession *)session didStartReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID withProgress:(NSProgress *)progress;
// Finished receiving a resource from remote peer and saved the content in a temporary location - the app is responsible for moving the file to a permanent location within its sandbox
- (void)session:(MCSession *)session didFinishReceivingResourceWithName:(NSString *)resourceName fromPeer:(MCPeerID *)peerID atURL:(NSURL *)localURL withError:(NSError *)error;`
尝试阅读http://nshipster.com/multipeer-connectivity/
另一答案
我写的代码就是这样做的;这是我的应用程序流视频从一个设备到另一个设备的视频:
<iframe width="560" height="315" src="https://www.youtube.com/embed/mWyZ1z55chw?rel=0" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>
以上是关于在iOS上通过WiFi和蓝牙流式传输视频的主要内容,如果未能解决你的问题,请参考以下文章