这个问题将非常通用,因为我是iOS,视频流和蓝牙(将成为一个有趣的项目)的新手。
基本上我希望能够通过WiFi或蓝牙将低分辨率视频从一个iOS设备流式传输到另一个iOS设备,具体取决于哪个可用。 Bonjour用于初始服务发现。 (我知道通过蓝牙传输视频是不理想的,但这是项目的要求之一)
所以问题是可以使用什么视频流框架/库来最大化通过WiFi的流视频和通过蓝牙的流视频之间共享的代码量。
以下是通过Multipeer Connectivity测试视频流的说明:
你需要Cocoapods,如果还没有安装它,请去http://cocoapods.org/#install
AVCaptureMultipeerVideoDataOutput/Sample
目录并执行pod install
注意: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;`
我写的代码就是这样做的;这是我的应用程序流视频从一个设备到另一个设备的视频:
<iframe width="560" height="315" src="https://www.youtube.com/embed/mWyZ1z55chw?rel=0" frameborder="0" gesture="media" allow="encrypted-media" allowfullscreen></iframe>
屏幕录像机(iOS 11.2)导致接收端偶尔出现断断续续的情况(它是在我的应用程序显示它的同时录制视频)。
无论如何,它使用设备之间的任何连接(无线,蓝牙,烟雾信号等),让我知道,我会让你开始。
看不到视频? https://youtu.be/mWyZ1z55chw