iOS开发:音乐播放器

/******************       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;

    }

    

   }












  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值