Objective-C中的AVAudioPlayer的应用

#import "ViewController.h"

#import <AVFoundation/AVFoundation.h>


@interface ViewController ()

{

    AVAudioPlayer * _player;

    __weak IBOutlet UILabel *timeLabel;

    NSTimer * _timer;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    NSURL *url = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"tenyear" ofType:@"mp3"]];

    _player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

    if([_player prepareToPlay]){

        [_player play];

    }

    

    _timer = [NSTimer scheduledTimerWithTimeInterval:1/60

              target:self

            selector:@selector(updateProgres)

            userInfo:nil

            repeats:YES];

    _timer.fireDate = [NSDate distantPast];

    

    // Do any additional setup after loading the view, typically from a nib.

}


- (IBAction)volume:(UISlider *)sender {

    float value = sender.value;

    _player.volume = value;

}

- (IBAction)soundTrack:(UISlider *)sender {

    float value = (sender.value - 0.5) * 2;

    _player.pan = value;

}

- (IBAction)speed:(UISlider *)sender {

    float value = sender.value + 0.5;

    _player.rate = value;

}

- (IBAction)play:(UIButton *)sender {

    if(_player.playing){

        return;

    }

    [_player play];

}

- (IBAction)pause:(UIButton *)sender {

    if(_player.isPlaying){

        [_player pause];

    }

}

- (IBAction)stop:(UIButton *)sender {

    if([_player isPlaying]){

        [_player stop];

    }

}

- (void)updateProgres{

    int current = _player.currentTime;

    int duration = _player.duration;

    timeLabel.text = [NSString stringWithFormat:@"%02d:%02d/%02d:%02d",current/60,current%60,duration/60,duration%60];

}

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end


UI如下


        


#import "ViewController.h"
#import <AVFoundation/AVFoundation.h>

@interface ViewController ()
{
    AVAudioPlayer * _player;
    __weak IBOutlet UILabel *timeLabel;
    NSTimer * _timer;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    NSURL *url = [[NSURL alloc] initFileURLWithPath:[[NSBundle mainBundle] pathForResource:@"tenyear" ofType:@"mp3"]];
    _player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
    if([_player prepareToPlay]){
        [_player play];
    }
    
    _timer = [NSTimer scheduledTimerWithTimeInterval:1/60
              target:self
            selector:@selector(updateProgres)
            userInfo:nil
            repeats:YES];
    _timer.fireDate = [NSDate distantPast];
    
    // Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)volume:(UISlider *)sender {
    float value = sender.value;
    _player.volume = value;
}
- (IBAction)soundTrack:(UISlider *)sender {
    float value = (sender.value - 0.5) * 2;
    _player.pan = value;
}
- (IBAction)speed:(UISlider *)sender {
    float value = sender.value + 0.5;
    _player.rate = value;
}
- (IBAction)play:(UIButton *)sender {
    if(_player.playing){
        return;
    }
    [_player play];
}
- (IBAction)pause:(UIButton *)sender {
    if(_player.isPlaying){
        [_player pause];
    }
}
- (IBAction)stop:(UIButton *)sender {
    if([_player isPlaying]){
        [_player stop];
    }
}
- (void)updateProgres{
    int current = _player.currentTime;
    int duration = _player.duration;
    timeLabel.text = [NSString stringWithFormat:@"%02d:%02d/%02d:%02d",current/60,current%60,duration/60,duration%60];
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值