#import "ViewController.h"
@import AVFoundation;
@interface ViewController ()<AVAudioPlayerDelegate>
{
SystemSoundID soundID;
AVAudioPlayer *audioPlayer;
NSTimer *timer;
int Ttime,minute,second;
}
@property (weak, nonatomic) IBOutlet UISlider *timeSlider;
@property (weak, nonatomic) IBOutlet UITextField *timeText;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [[NSBundle mainBundle] URLForResource:@"%E9%9E%AD%E7%82%AE%E9%9F%B3%E6%95%88" withExtension:@"mp3"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
//Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)didPlay:(id)sender {
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/122674119141534006164.mp3"];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(didRefresh:) userInfo:nil repeats:YES];
AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:url options:nil];
Ttime = (int)urlAsset.duration.value/urlAsset.duration.timescale;
[self.timeSlider addTarget:self action:@selector(timeSliderValueChanged:) forControlEvents:UIControlEventValueChanged];
}
- (void)timeSliderValueChanged:(id)sender
{
audioPlayer.currentTime = Ttime*self.timeSlider.value;
}
- (void)didRefresh:(NSTimer *)timer
{
minute = floor(audioPlayer.currentTime/60);
second = (int)audioPlayer.currentTime % 60;
self.timeSlider.value = audioPlayer.currentTime/Ttime;
self.timeText.text = [NSString stringWithFormat:@"%2i:%2i",minute,second];
}
- (IBAction)didPause:(id)sender {
[audioPlayer pause];
}
- (IBAction)didStop:(id)sender {
[audioPlayer stop];
[timer invalidate];
self.timeSlider.value = 0;
self.timeText.text = [NSString stringWithFormat:@"%2i:%2i",0,0];
}
- (IBAction)didSoundIDClicked:(id)sender {
AudioServicesPlaySystemSound(soundID);
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[timer invalidate];
self.timeSlider.value = 0;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
@import AVFoundation;
@interface ViewController ()<AVAudioPlayerDelegate>
{
SystemSoundID soundID;
AVAudioPlayer *audioPlayer;
NSTimer *timer;
int Ttime,minute,second;
}
@property (weak, nonatomic) IBOutlet UISlider *timeSlider;
@property (weak, nonatomic) IBOutlet UITextField *timeText;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [[NSBundle mainBundle] URLForResource:@"%E9%9E%AD%E7%82%AE%E9%9F%B3%E6%95%88" withExtension:@"mp3"];
AudioServicesCreateSystemSoundID((__bridge CFURLRef)(url), &soundID);
//Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)didPlay:(id)sender {
NSURL *url = [NSURL fileURLWithPath:@"/Users/apple/Desktop/122674119141534006164.mp3"];
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
[timer invalidate];
timer = [NSTimer scheduledTimerWithTimeInterval:0.01 target:self selector:@selector(didRefresh:) userInfo:nil repeats:YES];
AVURLAsset *urlAsset = [AVURLAsset URLAssetWithURL:url options:nil];
Ttime = (int)urlAsset.duration.value/urlAsset.duration.timescale;
[self.timeSlider addTarget:self action:@selector(timeSliderValueChanged:) forControlEvents:UIControlEventValueChanged];
}
- (void)timeSliderValueChanged:(id)sender
{
audioPlayer.currentTime = Ttime*self.timeSlider.value;
}
- (void)didRefresh:(NSTimer *)timer
{
minute = floor(audioPlayer.currentTime/60);
second = (int)audioPlayer.currentTime % 60;
self.timeSlider.value = audioPlayer.currentTime/Ttime;
self.timeText.text = [NSString stringWithFormat:@"%2i:%2i",minute,second];
}
- (IBAction)didPause:(id)sender {
[audioPlayer pause];
}
- (IBAction)didStop:(id)sender {
[audioPlayer stop];
[timer invalidate];
self.timeSlider.value = 0;
self.timeText.text = [NSString stringWithFormat:@"%2i:%2i",0,0];
}
- (IBAction)didSoundIDClicked:(id)sender {
AudioServicesPlaySystemSound(soundID);
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[timer invalidate];
self.timeSlider.value = 0;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end