最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解iOS應(yīng)用中播放本地視頻以及選取本地音頻的組件用法

 更新時(shí)間:2016年06月03日 09:24:24   作者:劉偉  
這里來為大家詳解iOS應(yīng)用中播放本地視頻以及選取本地音頻的組件用法,分別使用MPMoviePlayerControlle和MPMediaPickerController來實(shí)現(xiàn),兩個(gè)都是MediaPlayer.framework中的多媒體組件,所以我們放到一起來講.

MPMoviePlayerControlle播放本地視頻

MPMoviePlayerControlle與AVAudioPlayer有點(diǎn)類似,前者播放視頻,后者播放音頻,不過也有很大不同,MPMoviePlayerController 可以直接通過遠(yuǎn)程URL初始化,而AVAudioPlayer則不可以。不過大體上用起來感覺差不多。廢話少說進(jìn)入體驗(yàn)。
格式支持:MOV、MP4、M4V、與3GP等格式,還支持多種音頻格式。
首先你得引入 MediaPlayer.framework.然后在使用到MPMoviePlayerController 的文件中導(dǎo)入相應(yīng)的頭文件。

一、創(chuàng)建
MPMoviePlayerController 類通過一個(gè)NSURL來初始化,這個(gè)URL可以使本地的,也可以是遠(yuǎn)程的。初始化需要通過 initWithContentURL 方法來實(shí)現(xiàn):

復(fù)制代碼 代碼如下:

MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL urlWithString:@"http://"] ];//遠(yuǎn)程 

或者
復(fù)制代碼 代碼如下:

NSString* path =[ NSString stringWithFormat:@"%@/Documents/video.3gp",NSHomeDirectory()];//本地路徑 
MPMoviePlayerController *moviePlayer = [ [ MPMoviePlayerController alloc]initWithContentURL:[NSURL fileURLWithPath:path]];//本地的 

二、屬性設(shè)置
1.控制器樣式

復(fù)制代碼 代碼如下:

moviePlayer.moviewControlMode = MPMovieControlModeDefault; 

可以使用下列樣式:
MPMovieControlModeDefault            顯示播放/暫停、音量和時(shí)間控制
MPMovieControlModeVolumeOnly         只顯示音量控制
MPMovieControlModeHidden             沒有控制器
2.屏幕寬高比例
復(fù)制代碼 代碼如下:

moviePlayer.scallingMode = MPMovieScallingModeAspectFit; 

你可以使用下列寬高比值:
MPMovieScallingModeNone            不做任何縮放
MPMovieScallingModeAspectFit       適應(yīng)屏幕大小,保持寬高比
MPMovieScallingModeAspectFill      適應(yīng)屏幕大小,保持寬高比,可裁剪
MPMovieScallingModeFill            充滿屏幕,不保持寬高比
3.背景色
背景色會在電影播放器轉(zhuǎn)入轉(zhuǎn)出時(shí)使用,當(dāng)電影不能充滿整個(gè)屏幕時(shí),也會用來填充空白區(qū)域。默認(rèn)的背景色是黑色,不過你可以使用 UIColor 對象設(shè)置backgroundColor屬性,來改變背景色:
復(fù)制代碼 代碼如下:

moviePlayer.backgroundColor = [UIColor redColor]; 

三、播放和停止電影
要播放電影請調(diào)用play 方法,電影播放控制器會自動將視圖切換到電影播放器并開始播放:

復(fù)制代碼 代碼如下:

[ moviePlayer play ];

當(dāng)用戶點(diǎn)擊Done按鈕,或者 stop 方法被調(diào)用都會停止
復(fù)制代碼 代碼如下:

[ moviePlayer stop ]; 

當(dāng)電影停止播放后會自動切回播放前應(yīng)用程序所在的視圖。

四、通知
你的程序可以配置電影播放器在何時(shí)候發(fā)送通知,包括結(jié)束加載內(nèi)容、技術(shù)播放、改變寬高比等。電影播放器會將事件發(fā)送到 Cocoa 的通知中心,你可以對其進(jìn)行配置,指定將這些事件轉(zhuǎn)發(fā)到你的應(yīng)用程序的一個(gè)對象。要接收這些通知,需要使用 NSNotificationCenter 類,為電影播放器添加一個(gè)觀察者(observer):

復(fù)制代碼 代碼如下:

NSNotificationCenter* notificationCenter = [NSNotificationCenter defaultCenter]; 
[ notificationCenter addObserver:self selector:@selector(moviePlayerPreloadFinish:) name:MPMoviePlayerContentPreloadDidFinishNotification object:moviePlayer ]; 

通知會發(fā)到你指定的委托類和目標(biāo)方法。通知參數(shù)讓你可以知道是哪個(gè)事件觸發(fā)了委托方法:
復(fù)制代碼 代碼如下:

-(void)moviePlayerPreloadDidFinish:(NSNotification*)notification{ 
    //添加你的處理代碼 
}  

你會觀察到以下通知:
1.MPMoviePlayerContentPreloadDidFinishNotification
當(dāng)電影播放器結(jié)束對內(nèi)容的預(yù)加載后發(fā)出。因?yàn)閮?nèi)容可以在僅加載了一部分的情況下播放,所以這個(gè)通知可能在已經(jīng)播放后才發(fā)出。
2.MPMoviePlayerScallingModeDidChangedNotification
當(dāng)用戶改變了電影的縮放模式后發(fā)出。用戶可以點(diǎn)觸縮放圖標(biāo),在全屏播放和窗口播放之間切換。
3.MPMoviePlayerPlaybackDidFinishNotification
當(dāng)電影播放完畢或者用戶按下了Done按鈕后發(fā)出。

MPMediaPickerController選取本地音

MPMediaPickerController 與 UIImagePickerController 類似,允許用戶從音樂庫中選取音樂、播客、音頻書。 
1、創(chuàng)建

復(fù)制代碼 代碼如下:

MPMediaPickerController *mpc = [[MPMediaPickerControlleralloc]initWithMediaTypes:MPMediaTypeMusic]; 
   mpc.delegate = self;//委托 
   mpc.prompt =@"Please select a music";//提示文字 
   mpc.allowsPickingMultipleItems=NO;//是否允許一次選擇多個(gè)
 
上述代碼創(chuàng)建了一個(gè) MPMediaPickerController 并設(shè)置了相關(guān)屬性。其中初始化的時(shí)候有一個(gè)參數(shù)是媒體類型,媒體類型可以是下面這些值:
復(fù)制代碼 代碼如下:

enum { 
    // audio 
    MPMediaTypeMusic        = 1 << 0, 
    MPMediaTypePodcast      = 1 << 1, 
    MPMediaTypeAudioBook    = 1 << 2, 
    MPMediaTypeAudioITunesU = 1 << 3, // available in iOS 5.0 
    MPMediaTypeAnyAudio     = 0x00ff, 
     
    // video (available in iOS 5.0) 
    MPMediaTypeMovie        = 1 << 8, 
    MPMediaTypeTVShow       = 1 << 9, 
    MPMediaTypeVideoPodcast = 1 << 10, 
    MPMediaTypeMusicVideo   = 1 << 11, 
    MPMediaTypeVideoITunesU = 1 << 12, 
    MPMediaTypeAnyVideo     = 0xff00, 
     
    MPMediaTypeAny          = ~0 
}; 
typedef NSInteger MPMediaType; 

2、委托函數(shù)
復(fù)制代碼 代碼如下:

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection{ 
    /*insert your code*/ 
    for (  MPMediaItem* itemin [mediaItemCollection items]) { 
    } 
    [selfdismissModalViewControllerAnimated:YES]; 
    [mediaPicker release]; 


在上面這個(gè)函數(shù)里你可以處理所選取的內(nèi)容。下面這個(gè)函數(shù)負(fù)責(zé)處理選中后取消的動作:
復(fù)制代碼 代碼如下:

-(void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker{ 
    /*insert your code*/ 
    [selfdismissModalViewControllerAnimated:YES]; 
    [mediaPicker release]; 
}

3、顯示
你可以在任何需要顯示的時(shí)候調(diào)用下面代碼:
復(fù)制代碼 代碼如下:

[selfpresentModalViewController:mpc animated:YES]; 

4、關(guān)鍵點(diǎn)
看完上面的代碼你可能明白了,但是又感覺沒明白。為什么呢?看第一個(gè)回調(diào)函數(shù)就知道了,回調(diào)函數(shù)傳參好像不認(rèn)識。 MPMediaItemCollection 的對象的items 就是用戶選擇項(xiàng)的集合。每一項(xiàng)都是MPMediaItem 類的成員,并可以查詢其屬性值。屬性太多,我就不一一列出了,你去看MPMediaItem類的頭文件或者官方文檔就明白了。

相關(guān)文章

  • iOS各種ViewController控制器使用示例完整介紹

    iOS各種ViewController控制器使用示例完整介紹

    這篇文章主要為大家介紹了iOS各種ViewController控制器使用示例完整介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • iOS自學(xué)筆記之XIB的使用教程

    iOS自學(xué)筆記之XIB的使用教程

    本篇文章主要介紹了iOS自學(xué)筆記之XIB的使用教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-01-01
  • iOS開發(fā) widget構(gòu)建詳解及實(shí)現(xiàn)代碼

    iOS開發(fā) widget構(gòu)建詳解及實(shí)現(xiàn)代碼

    這篇文章主要介紹了iOS開發(fā) widget構(gòu)建詳解的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下
    2016-11-11
  • iOS中的地理位置的獲取及plist設(shè)置方法

    iOS中的地理位置的獲取及plist設(shè)置方法

    下面小編就為大家分享一篇iOS中的地理位置的獲取及plist設(shè)置方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • iOS實(shí)現(xiàn)點(diǎn)擊圖片放大和長按保存圖片的示例

    iOS實(shí)現(xiàn)點(diǎn)擊圖片放大和長按保存圖片的示例

    本篇文章主要介紹了iOS實(shí)現(xiàn)點(diǎn)擊圖片放大和長按保存圖片的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-03-03
  • iOS 獲取設(shè)備唯一標(biāo)示符的方法詳解

    iOS 獲取設(shè)備唯一標(biāo)示符的方法詳解

    本篇文章主要介紹了iOS 獲取設(shè)備唯一標(biāo)示符的方法詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 詳解Swift 之clipped是什么如何用

    詳解Swift 之clipped是什么如何用

    這篇文章主要介紹了詳解Swift 之clipped是什么如何用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • iOS鍵盤彈出遮擋輸入框的解決方法

    iOS鍵盤彈出遮擋輸入框的解決方法

    這篇文章主要為大家詳細(xì)介紹了iOS鍵盤彈出遮擋輸入框的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • WKWebview非全屏自動播放h5視頻的實(shí)現(xiàn)方法(Swift、OC)

    WKWebview非全屏自動播放h5視頻的實(shí)現(xiàn)方法(Swift、OC)

    這篇文章主要給大家介紹了關(guān)于WKWebview非全屏自動播放h5視頻的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • iOS10適配問題收集整理

    iOS10適配問題收集整理

    本文是小編給大家收集整理些有關(guān)iOS10適配問題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09

最新評論

益阳市| 革吉县| 潞西市| 新邵县| 汶上县| 朔州市| 长垣县| 台湾省| 平度市| 靖西县| 凤山市| 锦州市| 东兰县| 维西| 金华市| 兖州市| 垫江县| 苍溪县| 那曲县| 湘乡市| 凌源市| 怀安县| 右玉县| 焦作市| 天全县| 青海省| 莲花县| 澜沧| 灌云县| 鲜城| 新龙县| 拜城县| 建瓯市| 天等县| 盘山县| 宽甸| 清徐县| 张家界市| 松潘县| 大足县| 九龙坡区|