天天看點

iOS中 UIMPMediaPickerController播放系統音樂

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。

布局如下:

iOS中 UIMPMediaPickerController播放系統音樂

引入架構:

#import <avfoundation/avfoundation.h>

#import <mediaplayer/mediaplayer.h>

遵循協定及引入頭檔案

#import "viewcontroller.h"  

#import <avfoundation/avfoundation.h>  

#import <mediaplayer/mediaplayer.h>  

@interface viewcontroller ()<mpmediapickercontrollerdelegate>  

@end  

@implementation viewcontroller  

點選事件:

- (ibaction)pickmusicaction:(uibutton *)sender {  

    //建立一個mpmediapickercontroller 并為其指定媒體類型  

    //媒體類型:包括音樂,音頻等  

    //mpmediatypemovie  

    //mpmediatypemusic  

    mpmediapickercontroller *mediapc = [[mpmediapickercontroller alloc]initwithmediatypes:(mpmediatypemusic)];  

    if (mediapc != nil) {  

        nslog(@"successfully instantiated a media picker");  

        // 設定相關的屬性  

        // 代理  

        mediapc.delegate = self;  

        // 提示文字  

        mediapc.prompt = @"請選擇要播放的音樂";  

        // 是否允許一次選擇多個  

        mediapc.allowspickingmultipleitems = yes;  

        [self presentviewcontroller:mediapc animated:yes completion:nil];  

    }else{  

        nslog(@"could not instantiate a media picker");  

    }  

}  

// 通過代理方法來擷取選中的歌曲

// mpmediaitemcollection  多媒體項集合

// mpmediaitem 單個多媒體項,如一首歌曲

// collection是一組有序的item集合

- (void)mediapicker:(mpmediapickercontroller *)mediapicker didpickmediaitems:(mpmediaitemcollection *)mediaitemcollection  

{  

    nslog(@"%@",mediaitemcollection);  

    //mpmusicplayercontroller類可以播放音樂庫中的音樂  

    //mpmusicplayercontroller提供兩種播放器類型,一種是applicationmusicplayer,一種是ipodmusicplayer,這裡用ipodmusicplayer。前者在應用退出後音樂播放會自動停止,後者在應用停止後不會退出播放狀态。  

    mpmusicplayercontroller *musicpc = [[mpmusicplayercontroller alloc]init];  

    //mpmusicplayercontroller加載音樂不同于前面的avaudioplayer,avaudioplayer是通過一個檔案路徑來加載,而mpmusicplayercontroller需要一個播放隊列,正是由于它的播放音頻來源是一個隊列,是以mpmusicplayercontroller支援上一曲、下一曲等操作。  

    [musicpc setqueuewithitemcollection:mediaitemcollection];  

    [musicpc play];  

//選中後取消動作  

- (void)mediapickerdidcancel:(mpmediapickercontroller *)mediapicker  

    nslog(@"media picker was cancelled");  

    [mediapicker dismissviewcontrolleranimated:yes completion:nil];  

最終效果:

iOS中 UIMPMediaPickerController播放系統音樂

原文位址:http://blog.csdn.net/qq_31810357/article/details/50008255

上一篇: 共享無線
下一篇: Flex 嵌入jsp

繼續閱讀