标签: mcsession

将传入的NSStream转换为View

我成功发送了一个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)

iphone nsdata nsstream ios mcsession

14
推荐指数
1
解决办法
1172
查看次数

连接和中继如何在MCSession中工作?

Multipeer连接框架文件是有点欠缺.下面我有几个关于连接和中继的问题.

为了方便起见,我为每个问题创建了一个图像.传说如下:

在此输入图像描述

对于每个问题,请记住以下几点:

  • 如果我禁用蓝牙,答案会改变吗?
  • 如果我禁用wi-fi,答案会改变吗?
  • 如果我从同一个Wi-Fi网络断开连接,答案会改变吗?

1.如果连接到一个对等体,是否与其他对等体连接?

假设1和2连接到会话.

如果1和3连接,2和3连接?

在此输入图像描述


2.如果您已经与同伴进行了自己的会话怎么办?

假设1和2连接到会话,3和4连接到不同的会话.

如果1和3连接,那么所有对等体是否相互连接?(例如,2和4连接?)

在此输入图像描述


3.如果两个连接的设备不在范围内会发生什么?

假设1,2和3全部连接并且在彼此的范围内.

如果3超出1的范围(但仍然在2的范围内),1和3是否断开连接?

注意:对于这个问题,假设他们使用设备到设备通信,而不是集中式Wi-Fi.

3B.如果不是,这是否意味着1发送到3的每条消息都通过2传递,或者3只是没有得到任何消息?

在此输入图像描述


4.如果启动连接并且某些设备不在彼此的范围内,该怎么办?

假设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的广告?

在此输入图像描述


6.浏览器怎么样,它们是通过同行转发的吗?

同样,1和2在范围内,2和3在范围内,但1和3在范围之外.

如果3广告其服务,将1看到它(例如通过它通过对等2中继)?

6B.如果2也在浏览,这会改变上述问题的答案吗?即1将看到3的广告?

在此输入图像描述

ios multipeer-connectivity mcsession

12
推荐指数
0
解决办法
166
查看次数

多点连接 - 在 Swift 5 中获取文件传输(互联网)速度和文件大小

我正在点对点传输照片。一切正常,但我无法获得照片(文件)传输速度和互联网速度。与MB 一样,文件也被传输。其次,我想获取该文件的大小。

我们使用数据格式传递照片MCSession

由于隐私原因,我无法在此处添加项目代码,但我将分享我关注的参考 github 项目。在项目中,我传递字符串,在我的例子中传递照片。所有的事情都是一样的。

我在 Stackoverflow 上查了一下,但没有找到任何准确的答案!

参考项目链接: https://github.com/YogeshPateliOS/MultipeerConnectivity-.git

谢谢你!

wifi multipeer-connectivity mcsession swift swift5

7
推荐指数
1
解决办法
1439
查看次数