十.媒體播放

1- 音頻


    [1]
音樂往往是存儲在iPod曲庫(注意位置)中的,可以通過媒體選擇器(media picker)或者媒體查詢(media query)讀取,然後用音樂播放器MPMusicPlayerController播放。

1. MPMusicPlayerController *musicPlayer = [MPMusicPlayerController applicationMusicPlayer]; 

2. [musicPlayer setShufleMode: MPMusicShuffleModeSongs]; 

3. [musicPlayer setRepeatMode: MPMusicRepeatModeAll]; 

4. [musicPlayer setQueueWithQuery: [MPMediaQuery songsQuery]; 

5. [musicPlayer play]; 

   applicationMusicPlayer返回的播放器,在你的應用中播放音樂。它不會影響到iPod播放器,也不能從iPod播放器重獲取信息。
    iPodMusicPlayer返回的是iPod播放器,在你推出應用後,所有的設置都會影響到之後設備上的iPod播放器。
    獲得音樂播放器後,需要爲它設置一個播放隊列。可以用setQueueWithQuery:放方法,通過媒體查詢MPMediaQuery來設置 播放隊列,也可以用setQueueWithItemCollection:方法,通過MPMdiaItemCollection來設置播放隊列。
    重複模式repeatMode可以設置爲不重複、重複當前曲目、或整個播放列表;亂序播放shuffleMode可以設置爲不亂序、亂序播放曲目或亂序播放專輯;音量volume的設置與音頻播放器一樣。
    skipToNextItem跳到下一首,skipToPreviousItem跳到上一首,skipToBegin跳到第一首。
    對應的宏都是以MPMusic開頭。


    [2] 利用系統聲音服務來播放短暫音效(時長30秒以內),並震動:   

1. AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);  

    播放指定音效:

1. NSURL *fileURL = [NSURL fileURLWithPath: path isDirectory: NO];  

2. // 創建音效ID 

3. SystemSoundID soundID; 

4. AudioServiceCreateSystemSoundID((CFURLRef) fileURL, &soundID); 

5. // 播放聲音 

6. AudioServicesPlaySystemSound(soundID); 

   [3] 音頻播放器
    沒有時長限制

1. NSURL *fileURL = [NSURL fileURLWithPath: path isDirectory: NO]; 

2. // URL來初始化音頻播放器-播放的不是iPod曲庫中的音樂 

3. AVAudioPlayer* player = [AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: NO]; 

4. // 準備播放 

5. [player prepareToPlay]; 

6. // 設置代理 

7. [player setDelegate: self]; 

   方法:play、pause、stop。可以通過playing屬性查詢播放器是否正在播放當中,可以通過volume屬性來修改和查詢播放器的播放增益(從0.0到1.0),可通過setting屬性查詢播放器其他設置。

    duration表示音頻的時間長度, currentTime表示當前播放到的時間。播放結束後可以通過代理方法audioPlayerDidFinishPlaying:來處理播放後設置。
2- 視頻
    視頻播放可以採用網頁視圖(UIWebView)進行嵌入式播放(能播放YouTube視頻),或者採用電影播放器(MPMoviePlayerController)進行播放。
    [1] 電影播放器

1. MPMoviePlayerController *player = [MPMoviePlayerController alloc]initWithContentURL: url]; 

2.     // 設置播放器的大小,並將其加入視圖中 

3.     [player.view setFrame: rectFrame]; 

4.     [self.view addSubView: player.view]; 

5.     播放器的背景視圖backgroundView。 

6.     全屏[player setFullscreen: YES animated: YES]; 

7.     播放另一個影片[player setContentURL: newURL]; 

8.     [player requestThumbnailImagesAtTimes:arrayTimes timeOption:MPMovieTimeOptionNearestKeyFrame]; // 表示播放器不會在你所指定的時間去截取預覽,而是在絕對時間的附近幾幀中尋找效果最好的幀做爲預覽。 


scalingMode規定了影片的縮放模式。   

initialPlaybackTime用來控制視頻開始播放的時間,單位是秒。

如果視頻源在網絡上,那麼需要正確設置服務器端的mimeType。
發佈了91 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章