ios应用程序-图像浏览及音频播放-创新互联

在这里,主要为大家介绍一下,怎样从相册选取图片并在ImageView中显示出你选择的图片,并且实现简单的音乐和视频播放,下面是运行时的主页面效果图:

因为努力和真诚,有更多的客户和我们聚集在一起,为了共同目标,成都创新互联在工作上密切配合,从创业型企业到如今不断成长,要感谢客户对我们的高要求,让我们敢于面对挑战,才有今天的进步与发展。从网站到重庆小程序开发公司,软件开发,app软件开发,10年企业网站建设服务经验,为企业提供网站设计,网站托管、服务器租用一条龙服务.为企业提供成都全网营销推广,按需定制开发,原创设计,10年品质,值得您的信赖.

ios应用程序-图像浏览及音频播放

下面我们仔细学习具体的细节。创建一个空的IOS项目,接着在创建一个ViewController。

AppDelegate.h 应用的代理类这个没什么好说的就是直接打开刚刚创建的新ViewController,在ViewController.h文件里添加如下代码:

#import

#import

#import

//注意这里面引入了很多代理类

@interface ViewController: UIViewController

一.图片的选取

点击导航栏的photo按钮会跳转到photoView页面,至于如何跳转,下面介绍一种简单的跳转方式,则是在storyboard中右键点中photo拖拉到你要跳转的页面,在storyboard segues中有3个选项,Push,Modal和Custom,选中Modal,再次运行,点击photo页面跳转成功。

ios应用程序-图像浏览及音频播放

这时点击导航栏上的camera,会在下方弹出一个UIActionSheet,选择从手机相册获取之后回呈现相册里的图片,根据需求选择完之后会在ImageView中显示出来相应的图片,具体效果图如下:

ios应用程序-图像浏览及音频播放

在项目中添加类文件photoViewController系统自动生成photoViewController.h (头文件)和photoViewController.m(实现文件),在photoViewController.m中从相册选取图片的主要程序如下:

- (IBAction)btnPressed:(id)sender {

UIActionSheet*actionSheet = [[UIActionSheetalloc]

initWithTitle:nil

delegate:self

cancelButtonTitle:@"取消"

destructiveButtonTitle:nil

otherButtonTitles: @"打开照相机", @"从手机相册获取",nil];

  [actionSheet showInView:self.view];

}

- (void)actionSheet:(UIActionSheet *)actionSheetclickedButtonAtIndex:(NSInteger)buttonIndex

{

if (buttonIndex == actionSheet.cancelButtonIndex)

  {

NSLog(@"取消");

  }

switch (buttonIndex)

  {

case 0:

//打开照相机拍照

      [selftakePhoto];

break;

case 1:

//打开本地相册

      [selfLocalPhoto];

break;

  }

}

-(void)takePhoto

{

UIImagePickerController *picker=[[UIImagePickerControlleralloc]init];

  picker.sourceType = UIImagePickerControllerSourceTypeCamera;

  picker.delegate=self;

  picker.allowsEditing=YES;

  [selfpresentModalViewController:picker animated:YES];

}

-(void)LocalPhoto

{

UIImagePickerController *picker = [[UIImagePickerControlleralloc] init];

  picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

  picker.delegate = self;

//设置选择后的图片可被编辑

  picker.allowsEditing = YES;

  [selfpresentModalViewController:picker animated:YES];

}

//实现图像选取器控制器的委托

-(void)p_w_picpathPickerController:(UIImagePickerController *)pickerdidFinishPickingMediaWithInfo:(NSDictionary *)info

{

//用UIImagePickerController选择、显示图片或视频

NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

//当选择的类型是图片

if ([type isEqualToString:@"public.p_w_picpath"])

  {

//先把图片转成NSData

UIImage* p_w_picpath = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

    NSData *data;

//判断图片是不是JPEG格式的文件

if (UIImagePNGRepresentation(p_w_picpath))

    {

      data = UIImageJPEGRepresentation(p_w_picpath, 1.0);

    }

else

    {

      data = UIImagePNGRepresentation(p_w_picpath);

    }

//图片保存的路径

//指定文件目录这里将图片放在沙盒的documents文件夹中

NSString * documentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

//文件管理器

NSFileManager *fileManager = [NSFileManagerdefaultManager];

//把刚刚图片转换的data对象拷贝至沙盒中并保存为p_w_picpath.png

    [fileManager createDirectoryAtPath: documentsPath withIntermediateDirectories:YESattributes:nilerror:nil];

    [fileManager createFileAtPath:[ documentsPath stringByAppendingString:@"/p_w_picpath.png"] contents:data attributes:nil];

//得到选择后沙盒中图片的完整路径

filePath = [[NSStringalloc]initWithFormat:@"%@%@", documentsPath,  @"/p_w_picpath.png"];

//关闭相册界面

    [picker dismissModalViewControllerAnimated:YES];

p_w_picpathView.p_w_picpath = p_w_picpath;

//加在视图中

    [self.viewaddSubview:p_w_picpathView];

  }

}

二.音乐的播放:

音乐由页面中的PickVideo按钮触发播放音频文件,iPhone开发中想要实现音频的播放是很容易的,AVFoundation框架就是Apple本身推荐使用的一种方式。如何引入这个框架,下面为大家详细介绍:

ios应用程序-图像浏览及音频播放

首先,点击工程文件夹,会出现左边的界面,选择我圈起来的那个加号,会出现一系列的框架给你选择,你只需要选择AVFoundation.framework即可。此时,在它的上方就会显示出来,这个框架就添加好了。

播放音乐所需要的程序如下:

- (IBAction)playMp4File:(id)sender {

//   //找到mp3在资源库中的路径文件名称为sound 类型为mp3

NSString *soundPath=[[NSBundlemainBundle] pathForResource:@"后来"ofType:@"mp3"];

if(soundPath)

  {

NSURL *soundUrl=[[NSURLalloc] initFileURLWithPath:soundPath];

player=[[AVAudioPlayeralloc] initWithContentsOfURL:soundUrl error:nil];

//初始化播放器

    [playerprepareToPlay];

//设置播放循环次数,如果numberOfLoops为负数音频文件就会一直循环播放下去

player.numberOfLoops = -1;

//设置音频音量 volume的取值范围在 0.0为最小 0.1为大可以根据自己的情况而设置

player.volume = 0.5f;

  }

//当player有值的情况下并且没有在播放中开始播放音乐

if (player)

  {

if (![playerisPlaying])

    {

      [playerplay];

    }

  }

}

- (IBAction)palyStop:(id)sender {

//停止播放声音

if (player) {

if ([playerisPlaying]) {

      [playerstop];

    }

  }

}

三.视频的播放:

视频的播放由页面中的play MP4 File ,play Stop触发,而且播放电影文件时需要注意:ios中可以使用MPMoviePlayerController来播放电影文件这个类定义在MediaPlayer.framework中。同理,添加MediaPlayer.framework框架。

ios应用程序-图像浏览及音频播放

下面是触发pivkVideo时的代码:

- (IBAction)pickVideo:(id)sender

{

NSString *videoPath=[[NSBundlemainBundle] pathForResource:@"犯罪高手" ofType:@"mp4"];

NSLog(@"%@",videoPath);

if(videoPath)

  {

NSURL *videoUrl=[[NSURLalloc] initFileURLWithPath:videoPath];

//视频播放对象

moviePlayer = [[MPMoviePlayerControlleralloc]

initWithContentURL:videoUrl];

//适应屏幕大小,保持宽高比

moviePlayer.controlStyle=MPMovieScalingModeAspectFit;

    [moviePlayer.viewsetFrame:self.view.bounds];

moviePlayer.initialPlaybackTime = -1;

//显示播放/暂停、音量和时间控制

moviePlayer.movieControlMode = MPMovieControlModeDefault;

    [self.viewaddSubview:moviePlayer.view];

// 注册一个播放结束的通知

    [[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(myMovieFinishedCallback:)                           name:MPMoviePlayerPlaybackDidFinishNotification

object:moviePlayer];

UIToolbar *toolBar=[[UIToolbaralloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

UIButton *button=[[UIButtonalloc] initWithFrame:CGRectMake(20, 3, 40, 40)];

    [button setTitle:@"back"forState:UIControlStateNormal];

    [button addTarget:selfaction:@selector(backItem) forControlEvents:UIControlEventTouchUpInside];

    [toolBar addSubview:button];

    [moviePlayer.viewaddSubview:toolBar];

    [moviePlayerplay];

    [moviePlayerstop];

  }

}

-(void)myMovieFinishedCallback:(NSNotification*)notify

{

//视频播放对象

MPMoviePlayerController* theMovie = [notify object];

//销毁播放通知

  [[NSNotificationCenterdefaultCenter] removeObserver:self

name:MPMoviePlayerPlaybackDidFinishNotification

object:theMovie];

  [theMovie.viewremoveFromSuperview];

}

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享名称:ios应用程序-图像浏览及音频播放-创新互联
本文地址:http://myzitong.com/article/dghcss.html