多媒体之调用相机相册及视频播放

 1 #import "RootViewController.h"
 2 #import <MediaPlayer/MediaPlayer.h>
 3 #import <MobileCoreServices/MobileCoreServices.h> //存放了系统调用的常量
 4 @interface RootViewController ()<UINavigationControllerDelegate,UIImagePickerControllerDelegate>
 5
 6 @end
 7
 8 @implementation RootViewController
 9
10 - (void)viewDidLoad {
11     [super viewDidLoad];
12     // Do any additional setup after loading the view.
13     [self createUI];
14 }
15 -(void)createUI{
16     NSMutableArray *titleAry=[[NSMutableArray alloc] initWithObjects:@"拍照",@"相册",@"视频", nil];
17     for (int i=0; i<titleAry.count; i++) {
18         UIButton *btn=[[UIButton alloc] initWithFrame:CGRectMake(100, 100+i*100, 200, 50)];
19         btn.backgroundColor=[UIColor blackColor];
20         [btn setTitle:titleAry[i] forState:UIControlStateNormal];
21         btn.tag=1+i;
22         [btn addTarget:self action:@selector(btn_Click:) forControlEvents:UIControlEventTouchUpInside];
23         [self.view addSubview:btn];
24     }
25
26     UIImageView *iv=[[UIImageView alloc] initWithFrame:CGRectMake(100, 400, 200, 200)];
27     iv.tag=100;
28     [self.view addSubview:iv ];
29
30 }
 1 -(void)btn_Click:(UIButton *)sender{
 2     NSInteger i=sender.tag;
 3     switch (i) {
 4         case 1:
 5             //实现拍照
 6             if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera]) {
 7                 //相机可用
 8                 [self loadImagePickerWithType:UIImagePickerControllerSourceTypeCamera];
 9             }else{
10                 NSLog(@"拍照功能不可用");
11             }
12             break;
13         case 2:{
14             //实现相册
15             if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
16                 //相册可用
17                 [self loadImagePickerWithType:UIImagePickerControllerSourceTypePhotoLibrary];
18             }else{
19                 NSLog(@"不能获取系统相册");
20             }
21         }
22             break;
23         case 3:{
24             //实现视频播放
25             NSString *strPath=[[NSBundle mainBundle ] pathForResource:@"1" ofType:@".mp4"];
26             [self  playVedio:strPath];
27         }
28             break;
29         default:
30             //
31             break;
32     }
33 }
34 //拍照及相册功能调用的函数(UIImagePickerControllerSourceType是枚举不是类不要*)
35 -(void)loadImagePickerWithType:(UIImagePickerControllerSourceType)type{
36     UIImagePickerController *ipc=[[UIImagePickerController alloc] init];
37     ipc.sourceType=type;
38     ipc.delegate=self;
39     //如果是相册功能,设置允许编辑图片
40     ipc.allowsEditing=YES;
41     [self presentViewController:ipc animated:NO completion:nil];
42 }
43 -(void)playVedio:(NSString *)path{
44     //实现视频文件的播放
45     if (path.length==0) {
46         NSLog(@"请输入有效的文件路径");
47         return;
48     }
49     //判断文件是本地文件还是远程文件
50     NSURL *URL;
51     if ([path rangeOfString:@"http://"].location!=NSNotFound || [path rangeOfString:@"http:"].location!=NSNotFound) {
52         //本地文件
53         URL=[NSURL URLWithString:path];
54     }else{
55
56         URL=[NSURL fileURLWithPath:path];
57     }
58     //创建视频播放对象
59     MPMoviePlayerViewController *mpvc=[[MPMoviePlayerViewController alloc] initWithContentURL:URL];
60     //设置播放类型
61     mpvc.moviePlayer.movieSourceType=MPMovieSourceTypeFile;
62     //显示播放窗口
63     [self presentViewController:mpvc animated:NO completion:nil];
64     //播放文件
65     [[mpvc moviePlayer] play];
66 }
67 #pragma mark - 实现拍照及相册功能的协议函数
68 -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
69     [picker dismissViewControllerAnimated:NO completion:nil];
70 }
71 -(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
72     //在此函数里获取通过相册选择的图片
73     NSString *type=info[UIImagePickerControllerMediaType];
74     //需要引入一个系统的常量类,定义了各种常量
75     if ([type isEqualToString:(NSString *)kUTTypeImage]) {
76         //获取图片,对图片进行处理
77         UIImage *image=info[UIImagePickerControllerEditedImage];
78         UIImageView *iv=(UIImageView *)[self.view viewWithTag:100];
79         iv.image=image;
80     }
81     [picker dismissViewControllerAnimated:NO completion:nil];
82 }
时间: 2024-11-10 03:00:04

多媒体之调用相机相册及视频播放的相关文章

IOS调用相机相册

#import "SendViewController.h"  //只能打开,没有加载图片的代码,老代码,供参考 #import <MobileCoreServices/UTCoreTypes.h> @interface SendViewController ()<UIActionSheetDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate> -(IBAction)sel

iOS调用相机,相册,上传头像

一.新建工程 二.拖控件,创建映射 三.在.h中加入delegate @interface ViewController : UIViewController 复制代码 四.实现按钮事件 -(IBAction)chooseImage:(id)sender { UIActionSheet *sheet; // 判断是否支持相机 if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCam

调用系统相机,相册功能

一开始的思路是这一块的功能单独出去;这样处理又会碰见很多问题. 还是集成在Activity中可能效果更好些, 而且三星的手机调用系统相机会导致调用的Activity会重启生命周期,如果是在fragment中调用的,会碰见更多的问题,做外包的伤不起,想深入下这个问题都没时间,暂时记录下在Activity中解决问题的方法,方便后面使用时直接拿来用. 比如在Activity中点击某个按钮,弹出一个对话框,选择拍照还是选择图片 mButton.setOnClickListener(new OnClick

IOS调用相机和相册时无法显示中文

调用系统相册.相机发现是英文的系统相簿界面后标题显示“photos”,但是手机语言已经设置显示中文 需要在info.plist做如下设置 info.plist里面添加 Localizedresources can be mixed YES Localization native development region China 表示是否允许应用程序获取框架库内语言.

Android图片系列(1)-------调用系统相册与相机获取图片

Android开发过程中,我们经常需要获取图片,你可以通过获取手机相册的图片,也可以调用相机拍照获取图片.这里主要讲这两个获取图片的方式,并记录其中遇到的小问题. 调用相册获取图片 这个功能非常简单,这里不多说了,这里贴出关键代码 Intent openAlbumIntent = new Intent(Intent.ACTION_GET_CONTENT); openAlbumIntent.setType("image/*"); startActivityForResult(openAl

Android 调用系统相机拍照保存以及调用系统相册的方法

系统已经有的东西,如果我们没有新的需求的话,直接调用是最直接的.下面讲讲调用系统相机拍照并保存图片和如何调用系统相册的方法. 首先看看调用系统相机的核心方法: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(camera, CAMERA); 相机返回的数据通过下面的回调方法取得,并处理: public static final int CAMERA  = 0x01; @Over

android 调用系统相机获取图片、调用系统相册获取图片,并对图片进行截取

打开系统相册获取图片并截取,代码相对简单 1 Intent intent = new Intent(Intent.ACTION_GET_CONTENT,null); 2 intent.setType("image/*"); 3 intent.putExtra("crop", "true"); 4 5 //WIDTH 和 HEIGHT指的是截取框的宽高比例,如设WIDTH = 1,HEIGHT = 1,截取框就为正方形 6 intent.putEx

调用系统相册或相机工具类

需求:点击修改头像,弹出对话框提示选择相册还是相机,从而调用系统相册或相机 import android.app.Activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import

从相册获取图片及调用相机拍照获取图片,最后上传图片到服务器

调用相机拍照获取图片: 跳转到到拍照界面: Intent takeIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); //下面这句指定调用相机拍照后的照片存储的路径 mSzImageFileName = Long.toString(System.currentTimeMillis()) + ".png"; takeIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new F