真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ios應(yīng)用程序-圖像瀏覽及音頻播放-創(chuàng)新互聯(lián)

在這里,主要為大家介紹一下,怎樣從相冊(cè)選取圖片并在ImageView中顯示出你選擇的圖片,并且實(shí)現(xiàn)簡單的音樂和視頻播放,下面是運(yùn)行時(shí)的主頁面效果圖:

因?yàn)榕驼嬲\,有更多的客戶和我們聚集在一起,為了共同目標(biāo),成都創(chuàng)新互聯(lián)在工作上密切配合,從創(chuàng)業(yè)型企業(yè)到如今不斷成長,要感謝客戶對(duì)我們的高要求,讓我們敢于面對(duì)挑戰(zhàn),才有今天的進(jìn)步與發(fā)展。從網(wǎng)站到重慶小程序開發(fā)公司,軟件開發(fā),app軟件開發(fā),10年企業(yè)網(wǎng)站建設(shè)服務(wù)經(jīng)驗(yàn),為企業(yè)提供網(wǎng)站設(shè)計(jì),網(wǎng)站托管、服務(wù)器租用一條龍服務(wù).為企業(yè)提供成都全網(wǎng)營銷推廣,按需定制開發(fā),原創(chuàng)設(shè)計(jì),10年品質(zhì),值得您的信賴.

ios應(yīng)用程序-圖像瀏覽及音頻播放

下面我們仔細(xì)學(xué)習(xí)具體的細(xì)節(jié)。創(chuàng)建一個(gè)空的IOS項(xiàng)目,接著在創(chuàng)建一個(gè)ViewController。

AppDelegate.h 應(yīng)用的代理類這個(gè)沒什么好說的就是直接打開剛剛創(chuàng)建的新ViewController,在ViewController.h文件里添加如下代碼:

#import

#import

#import

//注意這里面引入了很多代理類

@interface ViewController: UIViewController

一.圖片的選取

點(diǎn)擊導(dǎo)航欄的photo按鈕會(huì)跳轉(zhuǎn)到photoView頁面,至于如何跳轉(zhuǎn),下面介紹一種簡單的跳轉(zhuǎn)方式,則是在storyboard中右鍵點(diǎn)中photo拖拉到你要跳轉(zhuǎn)的頁面,在storyboard segues中有3個(gè)選項(xiàng),Push,Modal和Custom,選中Modal,再次運(yùn)行,點(diǎn)擊photo頁面跳轉(zhuǎn)成功。

ios應(yīng)用程序-圖像瀏覽及音頻播放

這時(shí)點(diǎn)擊導(dǎo)航欄上的camera,會(huì)在下方彈出一個(gè)UIActionSheet,選擇從手機(jī)相冊(cè)獲取之后回呈現(xiàn)相冊(cè)里的圖片,根據(jù)需求選擇完之后會(huì)在ImageView中顯示出來相應(yīng)的圖片,具體效果圖如下:

ios應(yīng)用程序-圖像瀏覽及音頻播放

在項(xiàng)目中添加類文件photoViewController系統(tǒng)自動(dòng)生成photoViewController.h (頭文件)和photoViewController.m(實(shí)現(xiàn)文件),在photoViewController.m中從相冊(cè)選取圖片的主要程序如下:

- (IBAction)btnPressed:(id)sender {

UIActionSheet*actionSheet = [[UIActionSheetalloc]

initWithTitle:nil

delegate:self

cancelButtonTitle:@"取消"

destructiveButtonTitle:nil

otherButtonTitles: @"打開照相機(jī)", @"從手機(jī)相冊(cè)獲取",nil];

  [actionSheet showInView:self.view];

}

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

{

if (buttonIndex == actionSheet.cancelButtonIndex)

  {

NSLog(@"取消");

  }

switch (buttonIndex)

  {

case 0:

//打開照相機(jī)拍照

      [selftakePhoto];

break;

case 1:

//打開本地相冊(cè)

      [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;

//設(shè)置選擇后的圖片可被編輯

  picker.allowsEditing = YES;

  [selfpresentModalViewController:picker animated:YES];

}

//實(shí)現(xiàn)圖像選取器控制器的委托

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

{

//用UIImagePickerController選擇、顯示圖片或視頻

NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

//當(dāng)選擇的類型是圖片

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

  {

//先把圖片轉(zhuǎn)成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];

//把剛剛圖片轉(zhuǎn)換的data對(duì)象拷貝至沙盒中并保存為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"];

//關(guān)閉相冊(cè)界面

    [picker dismissModalViewControllerAnimated:YES];

p_w_picpathView.p_w_picpath = p_w_picpath;

//加在視圖中

    [self.viewaddSubview:p_w_picpathView];

  }

}

二.音樂的播放:

音樂由頁面中的PickVideo按鈕觸發(fā)播放音頻文件,iPhone開發(fā)中想要實(shí)現(xiàn)音頻的播放是很容易的,AVFoundation框架就是Apple本身推薦使用的一種方式。如何引入這個(gè)框架,下面為大家詳細(xì)介紹:

ios應(yīng)用程序-圖像瀏覽及音頻播放

首先,點(diǎn)擊工程文件夾,會(huì)出現(xiàn)左邊的界面,選擇我圈起來的那個(gè)加號(hào),會(huì)出現(xiàn)一系列的框架給你選擇,你只需要選擇AVFoundation.framework即可。此時(shí),在它的上方就會(huì)顯示出來,這個(gè)框架就添加好了。

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

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

//設(shè)置播放循環(huán)次數(shù),如果numberOfLoops為負(fù)數(shù)音頻文件就會(huì)一直循環(huán)播放下去

player.numberOfLoops = -1;

//設(shè)置音頻音量 volume的取值范圍在 0.0為最小 0.1為大可以根據(jù)自己的情況而設(shè)置

player.volume = 0.5f;

  }

//當(dāng)player有值的情況下并且沒有在播放中開始播放音樂

if (player)

  {

if (![playerisPlaying])

    {

      [playerplay];

    }

  }

}

- (IBAction)palyStop:(id)sender {

//停止播放聲音

if (player) {

if ([playerisPlaying]) {

      [playerstop];

    }

  }

}

三.視頻的播放:

視頻的播放由頁面中的play MP4 File ,play Stop觸發(fā),而且播放電影文件時(shí)需要注意:ios中可以使用MPMoviePlayerController來播放電影文件這個(gè)類定義在MediaPlayer.framework中。同理,添加MediaPlayer.framework框架。

ios應(yīng)用程序-圖像瀏覽及音頻播放

下面是觸發(fā)pivkVideo時(shí)的代碼:

- (IBAction)pickVideo:(id)sender

{

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

NSLog(@"%@",videoPath);

if(videoPath)

  {

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

//視頻播放對(duì)象

moviePlayer = [[MPMoviePlayerControlleralloc]

initWithContentURL:videoUrl];

//適應(yīng)屏幕大小,保持寬高比

moviePlayer.controlStyle=MPMovieScalingModeAspectFit;

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

moviePlayer.initialPlaybackTime = -1;

//顯示播放/暫停、音量和時(shí)間控制

moviePlayer.movieControlMode = MPMovieControlModeDefault;

    [self.viewaddSubview:moviePlayer.view];

// 注冊(cè)一個(gè)播放結(jié)束的通知

    [[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

{

//視頻播放對(duì)象

MPMoviePlayerController* theMovie = [notify object];

//銷毀播放通知

  [[NSNotificationCenterdefaultCenter] removeObserver:self

name:MPMoviePlayerPlaybackDidFinishNotification

object:theMovie];

  [theMovie.viewremoveFromSuperview];

}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


當(dāng)前名稱:ios應(yīng)用程序-圖像瀏覽及音頻播放-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://weahome.cn/article/dghcss.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部