天天看点

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