iOS中 UIMPMediaPickerController播放系统音乐

版权声明:本文为博主原创文章,未经博主允许不得转载。

布局如下:

引入框架:

#import <AVFoundation/AVFoundation.h>

#import <MediaPlayer/MediaPlayer.h>

遵循协议及引入头文件

[objc] view plain copy

  1. #import "ViewController.h"  
  2. #import <AVFoundation/AVFoundation.h>  
  3. #import <MediaPlayer/MediaPlayer.h>  
  4.   
  5. @interface ViewController ()<MPMediaPickerControllerDelegate>  
  6.   
  7. @end  
  8.   
  9. @implementation ViewController  

点击事件:

[objc] view plain copy

  1. - (IBAction)pickMusicAction:(UIButton *)sender {  
  2.       
  3.     //创建一个MPMediaPickerController 并为其指定媒体类型  
  4.     //媒体类型:包括音乐,音频等  
  5.     //MPMediaTypeMovie  
  6.     //MPMediaTypeMusic  
  7.     MPMediaPickerController *mediaPC = [[MPMediaPickerController alloc]initWithMediaTypes:(MPMediaTypeMusic)];  
  8.       
  9.     if (mediaPC != nil) {  
  10.         NSLog(@"Successfully instantiated a media picker");  
  11.           
  12.         // 设置相关的属性  
  13.         // 代理  
  14.         mediaPC.delegate = self;  
  15.         // 提示文字  
  16.         mediaPC.prompt = @"请选择要播放的音乐";  
  17.         // 是否允许一次选择多个  
  18.         mediaPC.allowsPickingMultipleItems = YES;  
  19.           
  20.         [self presentViewController:mediaPC animated:YES completion:nil];  
  21.     
  22.     }else{  
  23.         NSLog(@"Could not instantiate a media picker");  
  24.     }  
  25.       
  26.       
  27. }  

// 通过代理方法来获取选中的歌曲

// MPMediaItemCollection  多媒体项集合

// MPMediaItem 单个多媒体项,如一首歌曲

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

[objc] view plain copy

  1. - (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection  
  2. {  
  3.     NSLog(@"%@",mediaItemCollection);  
  4.       
  5.     //MPMusicPlayerController类可以播放音乐库中的音乐  
  6.     //MPMusicPlayerController提供两种播放器类型,一种是applicationMusicPlayer,一种是iPodMusicPlayer,这里用iPodMusicPlayer。前者在应用退出后音乐播放会自动停止,后者在应用停止后不会退出播放状态。  
  7.     MPMusicPlayerController *musicPC = [[MPMusicPlayerController alloc]init];  
  8.       
  9.     //MPMusicPlayerController加载音乐不同于前面的AVAudioPlayer,AVAudioPlayer是通过一个文件路径来加载,而MPMusicPlayerController需要一个播放队列,正是由于它的播放音频来源是一个队列,因此MPMusicPlayerController支持上一曲、下一曲等操作。  
  10.       
  11.     [musicPC setQueueWithItemCollection:mediaItemCollection];  
  12.     [musicPC play];  
  13.      
  14. }  

[objc] view plain copy

  1. //选中后取消动作  
  2. - (void)mediaPickerDidCancel:(MPMediaPickerController *)mediaPicker  
  3. {  
  4.     NSLog(@"Media Picker was cancelled");  
  5.       
  6.     [mediaPicker dismissViewControllerAnimated:YES completion:nil];  
  7.       
  8. }  

最终效果:

每日更新关注:http://weibo.com/hanjunqiang  新浪微博

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

时间: 2024-10-06 11:05:58

iOS中 UIMPMediaPickerController播放系统音乐的相关文章

redhat linux中如何播放mp3音乐文件?

redhat linux中如何播放mp3音乐文件? 自带的xmms 不能播放MP3(无声),要安装一个rpm 包: rpm -ivh xmms-mp3-1.2.7-13.p.i386.rpm 打开xmms,ctl-p,在font 栏中先在上半部的小框内打勾,再选择"fixed(misc) gbk-0 13"号字体即可显示中文歌曲名. 在音频输出插件中选择 "开放音频系统驱动程序1.2.7 [lioOSS.so],即可正常播放MP3文件.

iOS开发中的播放系统音效和自定义音效

需求大致分为三种: 1.震动 2.系统音效(无需提供音频文件) 3.自定义音效(需提供音频文件) 我的工具类的封装: // // WQPlaySound.h // WQSound // // Created by 念茜 on 12-7-20. // Copyright (c) 2012年 __MyCompanyName__. All rights reserved. // #import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox

我的音乐文件夹中无法播放所有音乐怎么办

  问:在"我的音乐"文件夹中,单击"全部播放"选项后,无法播放一些音乐文件,请问这是为什么? 答:如果音乐文件位于向下10层的子文件夹中,可能会导致该现象的发生.解决的方法是将音乐文件移到10层以内的子文件夹中.

Java程序中添加播放MIDI音乐功能

 JAVA 在多媒体处理方面的确优势不大,但是我们在程序中有些时候又需要一些音乐,如果播放的音乐是wav等波形音频文件,又很大的话,所以背景音乐最好就是MIDI了,可是网上很多播放MIDI的教程都是简单的几句话的例子.       没有考虑资源的释放问题,如果程序长久运行的话,就会出现内存越耗越多的情况,最后会抛出一个 java.lang.OutOfMemoryError.. 在MIDI的播放中,一个类是比较重要的,那就是 MidiSystem 类,负责整个MIDI播放设备等的管理,其实就是 S

讲解iOS开发中对音效和音乐播放的简单实现_IOS

音效的播放 一.简单介绍 简单来说,音频可以分为2种 (1)音效 又称"短音频",通常在程序中的播放时长为1~2秒 在应用程序中起到点缀效果,提升整体用户体验 (2)音乐 比如游戏中的"背景音乐",一般播放时间较长 框架:播放音频需要用到AVFoundation.framework框架 二.音效的播放 1.获得音效文件的路径 复制代码 代码如下: NSURL *url = [[NSBundle mainBundle] URLForResource:@"m_

实例解析iOS中音乐播放器应用开发的基本要点_IOS

一.调整项目的结构,导入必要的素材 调整后的项目结构如下: 二.新建两个控制器(1)新建一个控制器,用于展示音乐文件列表界面,其继承自UITableViewController (2)新建一个控制器,用于展示播放界面,其继承自UIViewController (3)在storyboard中,把之前的控制器删除,换上一个导航控制器,设置tableViewController与之前新建的控制器类进行关联 三.音乐文件列表控制器中基本界面的搭建(1)新建一个音乐文件的模型 根据plist文件建立模型:

win8.1进入系统没有播放开机音乐怎么办

    原因分析: Win8.1系统的关机动作默认执行的是深度休眠,而非完全关机,在设置勾选了"播放Windows启动声音"的状态下,并未取消"启用快速启动"功能,所以电脑执行的是从深度休眠唤醒动作,而非关机重启,故而无法听到开机启动声音. 解决方案: 1.在系统桌面,左键点击右下角系统自带"电池"图标,出现如下界面,选择更多"电源选项";   2.弹出的"电源选项"界面,如下图所示,点击"选择电

设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框

设计iOS中随系统键盘弹收和内容文字长度自适应高度的文本框     文本输入框是多数与社交相关的app中不可或缺的一个控件,这些文本输入框应该具备如下的功能: 1.在键盘为弹起时,输入框悬浮在界面底部. 2.当键盘弹起时,输入框位置上移至键盘上方,并且动画应与键盘同步. 3.当输入的文字超出一行时,输入框应想用的进行高度扩展. 4.当输入框的高度达到某一极限值时,输入框高度不应继续扩展,文字区域应该支持滑动.     使用autolayout布局技术加上对键盘的相关监听,可以十分方便的实现上述效

ios 代码 视频-rtmp协议的数据流,在iOS中怎么请求数据,然后怎么播放;求发demo

问题描述 rtmp协议的数据流,在iOS中怎么请求数据,然后怎么播放:求发demo 要做一款直播类的app这个协议以前没用过:在github没找到第三方:很多地方搜了也只说原理:没有代码:求大牛发个demo,感激不尽 解决方案 上面的答案有帮助吗?如果还有问题,请提出来,如果对答案满意,请顶一下,并标记为采纳答案,谢谢! 解决方案二: 开源项目 rtmp-video-player-for-ios