您的位置:首页 > 移动开发 > IOS开发

iOS开发:音乐播放器

2015-09-27 13:33 435 查看
/****************** iOS开发:音乐播放器  *****************/

要求:给button一个触发事件,点击一下播放歌曲,显示暂停提示;

再点击一下暂停歌曲,显示播放字体;

封装一个music类:

(1).引入AVFoundation框架

#import<AVFoundation/AVFoundation.h>

(2).创建播放歌曲的类的对象以及方法:

@property(nonatomic, strong)AVPlayer *player;
@property(nonatomic, retain)NSString *currentURL; //url:网络接口
@property(nonatomic,assign)NSInteger
flag; //标签
//单例,只有这个工程关闭时,才退出歌曲播放

+ (Music *)shareInstance;
//播放歌曲,传进来一个URL
- (void)playMusicWith:(NSString *)urlString;
//暂停歌曲
- (void)pauseMusic;
(3).实现方法:

+ (Music *)shareInstance{
//只走一次
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{

music = [[Music alloc]init];

});
return music;
}

- (void)playMusicWith:(NSString *)urlString{

if ([_currentURL isEqualToString:urlString]) {
//通过flag触发播放还是暂停:
if (_flag == 1) {
[_player play];
_flag = 0;

}else{

[_player pause];
_flag = 1;

}else{ //换歌

//记录当前歌曲URL
_currentURL = urlString;
//先暂停前一首歌
[_player pause];
//得到新的URL
_player = [[AVPlayer alloc]initWithURL:[NSURL URLWithString:urlString]];
//播放新歌
[_player play];

}
}

(4).在viewController中,
假设给button一个触发事件,用来控制播放、暂停歌曲

- (void)buttonAction{
//用tag值来改变setTitle (初始时刻button = 1000)
if (_button.tag == 1000) {
NSString *urlString = @"http://fdfs.xmcdn.com/group14/M08/70/3F/wKgDZFX1m2_zB1prACBgVqJhyOA138.mp3";
[[Music shareInstance] playMusicWith:urlString];
[_button setTitle:@"暂停" forState: UIControlStateNormal];
_button.tag = 1001;

}else{
NSString *urlString = @"http://fdfs.xmcdn.com/group14/M08/70/3F/wKgDZFX1m2_zB1prACBgVqJhyOA138.mp3";
[[Music shareInstance] playMusicWith:urlString];
[_button setTitle:@"播放" forState:UIControlStateNormal];
_button.tag = 1000;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: