版本记录
版本号 | 时间 |
---|---|
V1.0 | 2017.12.29 |
前言
ios系统中有很多方式可以播放音频文件,这里我们就详细的说明下播放音乐文件的原理和实例。感兴趣的可以看我写的上面几篇。
1. 几种播放音频文件的方式(一) —— 播放本地音乐
2. 几种播放音频文件的方式(二) —— 音效播放
3. 几种播放音频文件的方式(三) —— 网络音乐播放
4. 几种播放音频文件的方式(四) —— 音频队列服务(Audio Queue Services)(一)
5. 几种播放音频文件的方式(五) —— 音频队列服务(Audio Queue Services)简介(二)
6. 几种播放音频文件的方式(六) —— 音频队列服务(Audio Queue Services)之关于音频队列(三)
7. 几种播放音频文件的方式(七) —— 音频队列服务(Audio Queue Services)之录制音频(四)
8. 几种播放音频文件的方式(八) —— 音频队列服务(Audio Queue Services)之播放音频(五)
9. 几种播放音频文件的方式(九) —— Media Player框架之基本概览(一)
功能需求
利用Media Player
框架播放音频文件。
功能实现
这里首先要说明的是,Media Player
框架很多类和方法都是在ios9.0就已经废弃了,比如MPMoviePlayerViewController
类就是这样的,但是这里仍然作为播放音频文件的一种方式给大家列出来了,大家看看就好。
下面大家看一下代码。
#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>
#import <MediaPlayer/MediaPlayer.h>
@interface ViewController () <AVAudioSessionDelegate>
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
//这两句不可缺少
[[AVAudioSession sharedInstance] setDelegate:self];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
//资源路径
NSString *pathStr = [[NSBundle mainBundle] pathForResource:@"music" ofType:@"mp3"];
NSURL *url = [NSURL fileURLWithPath:pathStr];
//实例化播放器控制器
MPMoviePlayerViewController* moviePlayerController =[[MPMoviePlayerViewController alloc] initWithContentURL: url];
moviePlayerController.view.frame = self.view.frame;
[self.view addSubview:moviePlayerController.view];
moviePlayerController.moviePlayer.scalingMode = MPMovieScalingModeFill;
moviePlayerController.moviePlayer.controlStyle = MPMovieControlStyleFullscreen;
[moviePlayerController.moviePlayer setFullscreen:YES];
moviePlayerController.moviePlayer.movieSourceType = MPMovieSourceTypeUnknown;
[self presentMoviePlayerViewControllerAnimated:moviePlayerController];
//或者[self.navigationController pushViewController:moviePlayerController animated:YES];,我这里没有集成导航VC,所以就用present
[moviePlayerController.moviePlayer play];
}
@end
功能效果
下面我们就看一下功能效果。
从上面我们可以看到,这个界面完全是系统自动生成的,里面包括下一首、上一首、暂停、播放、时间标注等等,这些皮肤元素都是系统自动加上的。这就不用自己自定义页面和皮肤了,但是缺点就是定制性不够,很多播放器都是需要自己定制皮肤的。
后记
未完,待续~~~