iOS UI 20 音乐播放器

//

//  PlayerViewController.m

//  UI - 20 音乐播放器

//

//  Created by dllo on 15/12/4.

//  Copyright (c) 2015 dllo. All rights reserved.

//


#import "PlayerViewController.h"

#import "STKAudioPlayer.h"

@interface PlayerViewController ()

@property (nonatomic, retain)STKAudioPlayer *player;

@property (nonatomic, retain)UIButton *playB;

@property (nonatomic, retain)UIButton *stopB;

@property (nonatomic, retain)UISlider *vols;

@property (nonatomic, retain)UISlider *voltime;

@property (nonatomic, retain)NSTimer *timer;

@end


@implementation PlayerViewController


- (void)dealloc

{

    [_player release];

    [_playB release];

    [_stopB release];

    [_vols release];

    [_voltime release];

    [_timer release];

    [super dealloc];

}

+ (instancetype)sharePlayerController

{

    static PlayerViewController *playerVC = nil;

    if (nil == playerVC) {

        playerVC = [[PlayerViewController alloc] init];

    }

    return playerVC;

}

- (void)viewDidLoad {

    [super viewDidLoad];

    self.view.backgroundColor = [UIColor whiteColor];

    

    

    STKAudioPlayerOptions playerOption = {YES, YES,{50, 100, 200, 400, 800, 1600, 2600, 16000}};

    

    self.player = [[[STKAudioPlayer alloc]initWithOptions:playerOption]autorelease];

//    [self.player play:@"http://fs.ios.kugou.com/201512031644/a7941f5512531bb51d94d55cf77a8197/G028/M07/0D/11/vIYBAFWKZeyARNFPAClMTjzD8N8315.mp3"];

    NSString *file = [[NSBundle mainBundle]pathForResource:@"陈势安 - 天后" ofType:@"MP3"

                      ];

    NSURL *url = [NSURL fileURLWithPath:file];

    [self.player playURL:url];

    

    

//    [self.player play:@"陈势安 - 天后.mp3"];

    

    self.playB = [UIButton buttonWithType:UIButtonTypeCustom];

    self.playB.frame = CGRectMake(100, 100, 100, 30);

    [self.playB addTarget:self action:@selector(playBAct:) forControlEvents:UIControlEventTouchUpInside];

    self.playB.backgroundColor = [UIColor purpleColor];

    [self.playB setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    self.player.volume = 10;

    [self.playB setTitle:@"播放" forState:UIControlStateNormal];

      [self.playB setTitle:@"暂停" forState:UIControlStateSelected];

    [self.view addSubview:self.playB];

    

    

    self.stopB = [UIButton buttonWithType:UIButtonTypeCustom];

    self.stopB.frame = CGRectMake(100, 300, 100, 30);

    [self.stopB addTarget:self action:@selector(stopBAct) forControlEvents:UIControlEventTouchUpInside];

    self.stopB.backgroundColor = [UIColor purpleColor];

    [self.stopB setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    [self.stopB setTitle:@"停止" forState:UIControlStateNormal];

    [self.view addSubview:self.stopB];


    

    self.vols = [[UISlider alloc]initWithFrame:CGRectMake(100, 400, 300, 30)];

    self.vols.backgroundColor = [UIColor purpleColor];

    [self.vols addTarget:self action:@selector(slidAct) forControlEvents:UIControlEventValueChanged];

    self.vols.maximumValue = 50;

    [self.view addSubview:self.vols];

    [self.vols release];

    

    self.voltime = [[UISlider alloc]initWithFrame:CGRectMake(100, 500, 300, 30)];

    self.voltime.backgroundColor = [UIColor purpleColor];

    [self.voltime addTarget:self action:@selector(slidtimeAct) forControlEvents:UIControlEventValueChanged];

    self.voltime.maximumValue =169;

    [self.view addSubview:self.voltime];

    [self.voltime release];

    

    

    // Do any additional setup after loading the view.

}

- (void)playBAct:(UIButton *)sender

{

    if (STKAudioPlayerStatePlaying == self.player.state) {

        //暂停

        [self.player pause];

        self.playB.selected = YES;

        

        

    } else  if(STKAudioPlayerStatePaused == self.player.state)  {

          //继续

        [self.player resume];

          self.playB.selected = NO;

    } else {

    //播放

//    [self.player play:@"http://fs.ios.kugou.com/201512031644/a7941f5512531bb51d94d55cf77a8197/G028/M07/0D/11/vIYBAFWKZeyARNFPAClMTjzD8N8315.mp3"];

      

        self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(timeAct) userInfo:nil repeats:YES];

        

        

        

         self.playB.selected = NO;

    }

   

    

}

- (void)timeAct

{

    NSLog(@"当前分钟:%ld, 当前秒:%ld", (NSInteger)self.player.progress / 60, (NSInteger)self.player.progress % 60);

    NSLog(@"总分钟:%ld, 总秒:%ld", (NSInteger)self.player.duration / 60, (NSInteger)self.player.duration % 60);

    

    //进度条更新

    

    self.voltime.value = self.player.progress;

    

}

- (void)stopBAct

{

    //停止

    [self.player stop];

    self.playB.selected = NO;

    // 停止计时器

    [self.timer invalidate];

    self.timer = nil;

    

}

- (void)slidAct

{

    //设置音量

    self.player.volume = self.vols.value;

}


- (void)slidtimeAct

{

    //跳转时间

    [self.player seekToTime:self.voltime.value];

}


- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


/*

#pragma mark - Navigation


// In a storyboard-based application, you will often want to do a little preparation before navigation

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    // Get the new view controller using [segue destinationViewController].

    // Pass the selected object to the new view controller.

}

*/


@end


posted @ 2015-12-13 16:33  挽月细数风流  阅读(369)  评论(1编辑  收藏  举报