我成功发送了一个NSData流.下面的委托方法是获取该流并附加到NSMutableData self.data.如何获取此数据并将其转换为UIView/AVCaptureVideoPreviewLayer(应显示视频)?我觉得我错过了另一个转换,AVCaptureSession> NSStream> MCSession> NSStream>?
- (void)stream:(NSStream *)stream handleEvent:(NSStreamEvent)eventCode {
switch(eventCode) {
case NSStreamEventHasBytesAvailable:
{
if(!self.data) {
self.data = [NSMutableData data];
}
uint8_t buf[1024];
unsigned int len = 0;
len = [(NSInputStream *)stream read:buf maxLength:1024];
if(len) {
[self.data appendBytes:(const void *)buf length:len];
} else {
NSLog(@"no buffer!");
}
// Code here to take self.data and convert the NSData to UIView/Video
}
Run Code Online (Sandbox Code Playgroud)
我用这个发送流:
-(void) captureOutput:(AVCaptureOutput*)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection*)connection
{
CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer);
CVPixelBufferLockBaseAddress(imageBuffer,0);
size_t bytesPerRow = CVPixelBufferGetBytesPerRow(imageBuffer);
// size_t width = …
Run Code Online (Sandbox Code Playgroud) 该Multipeer连接框架文件是有点欠缺.下面我有几个关于连接和中继的问题.
为了方便起见,我为每个问题创建了一个图像.传说如下:
对于每个问题,请记住以下几点:
假设1和2连接到会话.
如果1和3连接,2和3连接?
假设1和2连接到会话,3和4连接到不同的会话.
如果1和3连接,那么所有对等体是否相互连接?(例如,2和4连接?)
假设1,2和3全部连接并且在彼此的范围内.
如果3超出1的范围(但仍然在2的范围内),1和3是否断开连接?
注意:对于这个问题,假设他们使用设备到设备通信,而不是集中式Wi-Fi.
3B.如果不是,这是否意味着1发送到3的每条消息都通过2传递,或者3只是没有得到任何消息?
假设1和2是在彼此的范围内,2和3是在彼此的范围内,但图1和3超出彼此的范围内.假设1和2连接到会话,但3不连接.
如果3连接到2,它也会连接到1吗?
同样,1和2在范围内,2和3在范围内,但1和3在范围之外.
如果1广告其服务,将3看到它(例如通过它通过对等2中继)?
5B.如果2也是广告,这会改变上述问题的答案吗?即3将看到1的广告?
同样,1和2在范围内,2和3在范围内,但1和3在范围之外.
如果3广告其服务,将1看到它(例如通过它通过对等2中继)?
6B.如果2也在浏览,这会改变上述问题的答案吗?即1将看到3的广告?
我正在点对点传输照片。一切正常,但我无法获得照片(文件)传输速度和互联网速度。与MB 一样,文件也被传输。其次,我想获取该文件的大小。
我们使用数据格式传递照片MCSession
由于隐私原因,我无法在此处添加项目代码,但我将分享我关注的参考 github 项目。在项目中,我传递字符串,在我的例子中传递照片。所有的事情都是一样的。
我在 Stackoverflow 上查了一下,但没有找到任何准确的答案!
参考项目链接: https://github.com/YogeshPateliOS/MultipeerConnectivity-.git
谢谢你!