录制视频

#import <MobileCoreServices/MobileCoreServices.h>

<UIVideoEditorControllerDelegate>//编辑视频

@property (strong, nonatomic) NSString *pathToRecordedVideo;

- (IBAction)editVideo:(id)sender;

- (IBAction)takePicture:(id)sender
{
    // Make sure camera is available
    if ([UIImagePickerController
         isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO)
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                        message:@"Camera Unavailable"
                                                       delegate:self
                                              cancelButtonTitle:@"Cancel"
                                              otherButtonTitles:nil, nil];
        [alert show];
        return;
    }
    if (self.imagePicker == nil)
    {
        self.imagePicker = [[UIImagePickerController alloc] init];
        self.imagePicker.delegate = self;
        self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
        self.imagePicker.mediaTypes = [UIImagePickerController
                                  availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
        self.imagePicker.allowsEditing = YES;

    }
    [self presentViewController:self.imagePicker animated:YES completion:NULL];
}
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    NSString * mediaType = [info objectForKey: UIImagePickerControllerMediaType];

    if (CFStringCompare((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)
    {
        NSString * moviePath = [[info objectForKey: UIImagePickerControllerMediaURL] path];

self.pathToRecordedVideo = moviePath;


        if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath))
        {
            UISaveVideoAtPathToSavedPhotosAlbum (moviePath, nil, nil, nil);
        }
    }
    UIImage * image = (UIImage *)[info objectForKey:UIImagePickerControllerEditedImage];
    UIImageWriteToSavedPhotosAlbum (image, nil, nil , nil);
    self.imageView.image = image;
    self.imageView.contentMode = UIViewContentModeScaleAspectFill;
    [self dismissViewControllerAnimated:YES completion:NULL];
}

- (void) imagePickerControllerDidCancel: (UIImagePickerController *) picker
{
    [self dismissViewControllerAnimated:YES completion:NULL];
}
- (IBAction)editVideo:(id)sender
{
    if (self.pathToRecordedVideo)
    {
        UIVideoEditorController *editor = [[UIVideoEditorController alloc] init];
        editor.videoPath = self.pathToRecordedVideo;
        editor.delegate = self;
        [self presentViewController:editor animated:YES completion:NULL];
    }
    else
    {
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"No Video Recorded Yet" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:nil, nil];
        [alert show];
    }
}
-(void)videoEditorController:(UIVideoEditorController *)editor didSaveEditedVideoToPath:(NSString *)editedVideoPath
{
    self.pathToRecordedVideo = editedVideoPath;
    if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (editedVideoPath))
    {
        UISaveVideoAtPathToSavedPhotosAlbum (editedVideoPath, nil, nil, nil);
    }
    [self dismissViewControllerAnimated:YES completion:NULL];
}

-(void)videoEditorControllerDidCancel:(UIVideoEditorController *)editor
{
    [self dismissViewControllerAnimated:YES completion:NULL];
}
时间: 2024-08-06 17:21:51

录制视频的相关文章

在Ubuntu上录制视频和编辑(很全)

Linux多媒体三剑客:GIMP,Inkscape,Blender3D Blender基金会制作的开源微电影Sintel:http://www.sintel.org/about电影采用Creative Commons Attribution 3.0授权.整个电影的制作,完全采用开源软件.使用64位Linux的图形工作站,用Blender进行3D图形,合成和视频编辑任务,用GIMP和Inkscape作图和绘画,在OpenEXR中渲染输出,用Python写脚本,在SVN中储存数据等等. 在Ubunt

Android开发之打开闪光灯录制视频

Android的SDK在线API上对录制视频的方法.步骤都写得非常清楚,但是如果没有一点思路,写起来也比较式费事.录制视频的全过程要打开闪光灯(可能是因为项目需要,或者特殊原因),则必须按照一定的顺序进行开关,毕竟容易出错.要实现录制的同时开启闪光灯也不难,官方API给出了一个大体的步骤.因为要采集点视频数据,临时写了个简单的Demo学习下,必要时再深度开发. 首先在工程中的AndroidManifest.xml中添加权限声明,因为要使用到摄像头,故需要添加Camera的相关权限,另外还需要写S

bandicam如何录制视频

我们一般都很熟悉这类软件:屏幕录制专家和kk录制等,这些都是国内比较优秀的作品.不过exe的封装格式以及录制的清晰度让人很纠结.所以这里要为大家分享的是一款韩国人写录制软件Bandicam.Bandicam能很轻松的录制电脑的屏幕操作和游戏等视频录制,录制出来的视频高清,容量小,重要的是直接支持h264编码录制.还有一个很重要的一点就是其他国家的人也在使用,特别是俄罗斯,这就意味着一些特殊的支持-- 这里将分享我的一些经验,较为具体地说说如何用bandicam录制一个让人满意的视频.其中的DX录

Appuim项目实战---录制视频

背景:在app测试中,很多场景当时出现,后期无法出现,如果这个时候就通过录制视频的方式记录那么问题就很快解决了,录制视频的简单命令:adb shell screenrecord --time-limit 10 /sdcard/demo.mp4 默认录制10分钟就结束,注意我录制视频是会使用ip,默认录制视频使用的屏幕都很大,我们可以换个小的屏幕,具体录制视频adb参数可以看这篇博客http://blog.csdn.net/wirelessqa/article/details/22725581 在

Camtasia Studio 录制视频格式trec压缩发布最佳方案

在使用了一段时间Camtasia Studio后,录制视频格式trec,在[生成和分享]中,转换格式有很多种,但是经过尝试,按一下方式效果和大小得到完美控制: 1.首先,在 调  视频的 [编辑尺寸]到1080p,不要采用默认的720p 2.其次,在[生成和分享]选择后,选择[自定义生成设置],然后选择[推荐]即MP4,然后再 然后一直默认下去即可. 当然,在下一步的有一个[视频]选项卡,你要保证 视频大小确实是你的最佳分辨率大小.至于质量的压缩比例50%就行,70%的会压缩后的大小会更大而且质

从摄像头录制视频实现

收藏两个摄像头录制视频的demo之一:基于opencv实现 QT PRO文件需要加入:LIBS +=   -lopencv_core -lopencv_highgui,或者使用g++ 利用这个参数来编译非QT环境的代码. #include <QCoreApplication> #include <QtGui/QCloseEvent> #include<opencv/cv.h> #include<opencv/highgui.h> void closeEven

录制视频心得

最近利用周末的时间,陆陆续续录制了一些视频,渐渐有了一些状态,其实每段视频都是反复录制,因为总感觉不满意,但我想后面的视频会越录越好. 面对学生讲课和面对屏幕讲课的还是有区别的,面对学生可以看到学生的表情,同时你也可以通过身体的动作来带动他们的思路,而录制视频我们是看不到的,只能想象学生的听课状态,然后每次剪辑,看哪段录制不好,重新录制,总之目标就是录制质量好的视频分享给大家. 路还很长,这只是刚刚开始,很幸运背后有支持我的小团队,我们一直走在路上,也欢迎大家提供更好的建议,休息片刻,继续录制,

Android 使用意图录制视频

本文章主要将通过意图触发内置的Camera应用程序来录制视频. 源代码: 布局文件: activity_main: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" androi

3D图片采集与展示(SurfaceView 自适应 Camera, 录制视频, 抽取帧)

      最近在做一个3D图片采集与展示. 主要功能为:自定义Camera(google 已经摈弃了Camera, 推荐使用Camera2,后续篇幅,我将会用Camera2取代Camera),围绕一个物体360度录制一个视频,然后在该视频抽取一定数量的帧,保存为图片存放.最后在一个Activity页面展示第一张图片,通过滑动或点击切换下一张图片,从而形成用图片展示的3D效果.该项目主要的目的是采集3D图片素材,然后上传到服务器处理,最终在用户客户端或网页端展示是通过OpenGL ES处理而来.

Android使用的开发MediaRecorder录制视频

MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用MediaRecorder录制视频与录制音频的步骤基本同样.仅仅是录制视频时不仅须要採集声音.还须要採集图像.为了让MediaRecorder录制时採集图像,应该在调用setAudioSource(int audio source)方法时再调用setVideoSource(int video source)方法来设置