视屏录制

#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];

    }

}

  

时间: 2024-10-07 12:55:21

视屏录制的相关文章

android录制视屏(预览,倒计时)

android用mediarecord录制视屏,可以设置视屏格式,大小,还有拍摄前预览,倒计时功能要自己用hander做. 1,CameraPreview.java //预览class public class CameraPreview extends SurfaceView implements Callback { private static final String TAG = "TAG-CameraPreview"; private SurfaceHolder mHolde

phonegap 捕获图片,音频,视屏 api capture

一. capture Api 简单介绍 capture 对象用于获取视屏,音频和图像,它是一个全局对象,通过 navigator.device.capture 来访问 方法: capture.captureAudio           捕获音频 capture.captureImage          捕获图片 capture.captureVideo          捕获视屏 MediaFile.getFormatData       获取媒体文件的格式信息 二. captureAudi

FFmpeg + php 视屏转换

什么是FFmpeg? FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件).它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多codec都是从头开发的. FFmpeg在Linux平台下开发,但它同样也可以在其它操作系统环境中编译运行,包括Windows.Mac OS X等. 这个项目最早由Fabrice Bellard发起,

Android中使用SurfaceView+MediaPlayer+自定义的MediaController实现自定义的视屏播放器

效果图如下: (PS本来是要给大家穿gif动态图的,无奈太大了,没法上传) 功能实现:暂停,播放,快进,快退,全屏,退出全屏,等基本功能 实现的思路: 在主布局中放置一个SurfaceView,在SurfaceView中放置一个MediaPlayer ,在其下方自定义一个MediaController,不过也不能称之为MediaController,使用的是PupupWindow来实现的,在PupupWindow布局中放置几个textView,Button,最重要的使我们的SeekBar控件,创

ffmpeg 编码(视屏)

分析ffmpeg_3.3.2 muxing 1:分析主函数,代码如下: 1 int main(int argc, char **argv) 2 { 3 OutputStream video_st = { 0 }, audio_st = { 0 }; 4 const char *filename; 5 AVOutputFormat *fmt; 6 AVFormatContext *oc; 7 AVCodec *audio_codec, *video_codec; 8 int ret; 9 int

实验6 在应用程序中播放音频和视屏

实验报告 课程名称 基于Android平台移动互联网开发 实验日期 4.15 实验项目名称 在应用程序中播放音频和视屏 实验地点 S3010 实验类型 □验证型    √设计型    □综合型 学  时 1学时 一.实验目的及要求(本实验所涉及并要求掌握的知识点) 实现在应用程序中处理音频和视频 实现播放音频,音频播放控制 实现播放视屏,视屏播放控制 使用service服务播放项目原文件的音乐 二.实验环境(本实验所使用的硬件设备和相关软件) (1)PC机 (2)操作系统:Windows XP

如何用火狐浏览器下载youtube上的视屏

Youtube作为世界第一的视频网站,其内容的数量和质量不是国内的土豆和优酷能比的.很多时候在国内搜不到的东西,在Youtube上都可以找到.找到了非常好的视频,想保存下来.却发现Youtube压根就没有提供下载的选项,真是苦命啊.这里告诉用火狐浏览器下载视屏 工具/原料 火狐浏览器 Youtube 方法/步骤 首先你需要安装火狐浏览器,安装完成后下载插件 1-Click YouTube Video Download   重启浏览器然后进入到youtube,你会发现在视频播放下面多了一个按钮.我

很不错的一个叫初学者做计算器的视屏http://www.56.com/redian/MTM0OTg4Mw/ODE2OTQzNjU.html

如题----------------链接在题目中! 这里不能添加! 很不错的一个叫初学者做计算器的视屏http://www.56.com/redian/MTM0OTg4Mw/ODE2OTQzNjU.html

使用videoview连续自动播放网络视屏

需求:网络请求接口,实现自动依次播放视频 1:xml布局文件 <VideoView android:id="@+id/video" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" /> 2.MainActivity页面,开启线程请求视屏接口 线程请求接口