zoukankan      html  css  js  c++  java
  • 视屏录制

    #import "ViewController.h"
    #import <AVFoundation/AVFoundation.h>
    
    @interface ViewController ()<AVCaptureFileOutputRecordingDelegate>
    
    @property(nonatomic ,strong) AVCaptureFileOutput * outPut;
    
    @property(nonatomic ,strong)AVCaptureSession * session;
    
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
    
        //创建输入设备
        
        AVCaptureDevice * device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];
        
          AVCaptureDeviceInput * inputVideo = [[AVCaptureDeviceInput alloc]initWithDevice:device error:nil];
        
        AVCaptureDevice * audio = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeAudio];
        
        AVCaptureDeviceInput * inpoutAudio = [[AVCaptureDeviceInput alloc]initWithDevice:audio error:nil];
        
        //创建文件输出设备
    
         AVCaptureFileOutput * outPut =  [[AVCaptureFileOutput alloc]init];
        
        
        self.outPut = outPut;
        //创建会话(加工厂)
        
        AVCaptureSession * session = [[AVCaptureSession alloc]init];
        
        self.session = session;
        
        //判断设备时候能够添加, 可能设备损坏
        if ([session canAddInput:inpoutAudio]) {
            
            [session addInput:inpoutAudio];
            
        }
     
        if ([session canAddInput:inputVideo]) {
            
            [session addInput:inputVideo];
        }
        
        if ([session canAddOutput:outPut]) {
            
            [session addOutput:outPut];
        }
    
        //创建预览层
        
        AVCaptureVideoPreviewLayer * preViewLayer = [[AVCaptureVideoPreviewLayer alloc]init];
        
        //设置frame
        preViewLayer.frame = self.view.bounds;
    
        //插入到View上
        
        [self.view.layer insertSublayer:preViewLayer atIndex:0];
        
        //开始会话
        
        [session startRunning];
    
        
    }
    
    - (IBAction)recode:(id)sender {
        
        if ([self.outPut isRecording]) {
            
            [self.outPut stopRecording];
            
        }else{
            
            NSString * path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject]stringByAppendingPathComponent:@"录制视屏.MP4"];
            
            
            [self.outPut startRecordingToOutputFileURL:[NSURL fileURLWithPath:path] recordingDelegate:self];
            
        }
        
        
        
        
    }
    

      

  • 相关阅读:
    js 根据屏幕大小调用不同的css文件
    centos U盘安装查看名称
    gmail只能收,不能发解决
    pytty秘钥登陆
    GCP 免密钥登陆
    iredmail安装资料整理
    centos修改本地hostname(主机名)
    chmod 774
    centos 环境部署
    epel更新源
  • 原文地址:https://www.cnblogs.com/yuwei0911/p/5448910.html
Copyright © 2011-2022 走看看