1. MPMediaPickerController 与 UIImagePickerController 类似,允许用户从音乐库中选取音乐、播客、音频书。

一、创建

  1. MPMediaPickerController *mpc = [[MPMediaPickerControlleralloc]initWithMediaTypes:MPMediaTypeMusic];
  2. mpc.delegate = self;//委托
  3. mpc.prompt =@"Please select a music";//提示文字
  4. mpc.allowsPickingMultipleItems=NO;//是否允许一次选择多个

上述代码创建了一个 MPMediaPickerController 并设置了相关属性。其中初始化的时候有一个参数是媒体类型,媒体类型可以是下面这些值:

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

二、委托函数

  1. - (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection{
  2. /*insert your code*/
  3. for (  MPMediaItem* itemin [mediaItemCollection items]) {
  4. }
  5. [selfdismissModalViewControllerAnimated:YES];
  6. [mediaPicker release];
  7. }

在上面这个函数里你可以处理所选取的内容。下面这个函数负责处理选中后取消的动作:

  1. -(void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker{
  2. /*insert your code*/
  3. [selfdismissModalViewControllerAnimated:YES];
  4. [mediaPicker release];
  5. }

三、显示

你可以在任何需要显示的时候调用下面代码:

  1. [selfpresentModalViewController:mpc animated:YES];

四、关键点

看完上面的代码你可能明白了,但是又感觉没明白。为什么呢?看第一个回调函数就知道了,回调函数传参好像不认识。 MPMediaItemCollection 的对象的items 就是用户选择项的集合。每一项都是MPMediaItem 类的成员,并可以查询其属性值。属性太多,我就不一一列出了,你去看MPMediaItem类的头文件或者官方文档就明白了。

MPMediaPickerController 选取本地音频--备用的更多相关文章

  1. iOS从零开始学习直播之音频1.播放本地音频文件

      现在直播越来越火,俨然已经成为了下一个红海.作为一个资深码农(我只喜欢这样称呼自己,不喜欢别人这样称呼我),我必须赶上时代的潮流,开始研究视频直播.发现视屏直播类的文章上来就讲拉流.推流.采集.美 ...

  2. AVAudioPlayer播放本地音频

    AVAudioPlayer苹果官方上说一般用于播放本地音频,不能用于播放网络上的音频. 具体的代码:先导入 #import <AVFoundation/AVFoundation.h> // ...

  3. (四)WebRTC手记之本地音频采集

    转自:http://www.cnblogs.com/fangkm/p/4374668.html 上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集,再介绍C ...

  4. WebRTC手记之本地音频采集

    转载请注明出处:http://www.cnblogs.com/fangkm/p/4374668.html 上一篇博文介绍了本地视频采集,这一篇就介绍下音频采集流程,也是先介绍WebRTC原生的音频采集 ...

  5. iOS Dev (20) 用 AVAudioPlayer 播放一个本地音频文件

    iOS Dev (20) 用 AVAudioPlayer 播放一个本地音频文件 作者:CSDN 大锐哥 博客:http://blog.csdn.net/prevention 步骤 第一步:在 Proj ...

  6. iOS Dev (21) 用 AVPlayer 播放一个本地音频文件

    iOS Dev (21) 用 AVPlayer 播放一个本地音频文件 作者:CSDN 大锐哥 博客:http://blog.csdn.net/prevention 前言 这篇文章与上一篇极其相似,要注 ...

  7. javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  8. iOS中音频的录制与播放(本地音频文件的播放)

    iOS功能开发涉及到音频处理时,最常见的时进行录音,以及音频文件的播放.停止播放等的操作.在开发中还要避免同一个音频文件,或不同音频文件之间的处理,比如说正在播放A音频时,可以停止播放A音频,也可以播 ...

  9. EasyPlayerPro windows播放器本地音频播放音量控制实现

    背景描述 作为一个播放器, 除了能播放视频和声音外,音量控制是绝对不能缺少的功能; 本文在音视频播放的基础上,增加对音量的控制: 实现流程 调用mixerGetDevCaps获取音频输出设备列表; 打 ...

随机推荐

  1. 舶来品P2P理财 能否成为“好声音”式好生意? 转

    华股财经 2012年11月29日 10:20:02 来源:互联网 字号:T|T   文/本刊记者 王奇 有数据显示,目前国内已有2000余家P2P公司,2007年至2011年上半年,其整体融资规模由2 ...

  2. 项目管理模式之如何去除SVN标记

    原问地址:http://blog.csdn.net/djcken/article/details/7916986      当项目不需要SVN标志的时候,我们一般怎么办哪??可能很多人设置Window ...

  3. js iframe问题

    父窗口获得iframe的window对象,从而控制对iframe的控制 document.getElementById("frameID").contentWindow;

  4. DLL入门浅析(1)——如何建立DLL

    转载自:http://www.cppblog.com/suiaiguo/archive/2009/07/20/90619.html 初学DLL,结合教程,总结一下自己的所得,希望对DLL初学者们有所帮 ...

  5. Spring的MVC控制器返回ModelMap时,会跳转到什么页面?

    控制器中的方法如下: @RequestMapping("/person/personDisplay") public ModelMap defaultHandler() { Sys ...

  6. Java 8 表示两个时间点距离

    Java JDK8 的 java.time API 提供全面的 date 和 time 的模型. 下面是一个使用案例:求两个时间点的距离. package com.tony.test; import ...

  7. code testing

    #include<iostream> #include<climits> int main(){ using namespace std; int n_int = INT_MA ...

  8. win7安装ruby on rails

    开发机:win7 旗舰版 - 64位 1,安装ruby,下载rubyinstaller-2.0.0-p451.exe 下载地址:http://rubyinstaller.org/downloads/ ...

  9. [LeetCode]Container With Most Water, 解题报告

    前言 难怪LeetCode OJ在找工作时被很多人推荐,发现了这道最大蓄水题目就是美团的笔试最后一道题,当时我霸笔只有着一道题目没有答出来,因此也就没有获得面试机会,可惜了 题目 Given n no ...

  10. Thrift初探:简单实现C#通讯服务程序

    Thrift是一种可伸缩的跨语言服务框架,它结合了功能强大的软件堆栈的代码生成引擎,以建设服务,工作效率和无缝地与C++,C#,Java,Python和PHP和Ruby结合.thrift允许你定义一个 ...