使用 UIPageControl 與 UIScrollView 來實作畫面切換的效果
.h
@interface ViewController : UIViewController { IBOutlet UIProgressView *progressBar; NSTimer *playbackTimer; AVAudioPlayer *soundPlayer; IBOutlet UILabel *soundPlayerLabel; } @property (nonatomic, retain) IBOutlet UIProgressView *progressBar; @property (nonatomic, retain) UILabel *soundPlayerLabel; @property (nonatomic, strong) AVAudioPlayer *soundPlayer;.m
@synthesize progressBar; @synthesize soundPlayerLabel; @synthesize soundPlayer; - (void)viewWillAppear:(BOOL)animated { [self playSound]; } #pragma mark - PlaySound - (void) playSound { NSString *fileName = @"1_test_2"; NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:@"mp3"]; NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: filePath ]; NSError *error = nil; AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: &error]; player.volume = 1; player.numberOfLoops = 0; [player prepareToPlay]; self.soundPlayer = player; if (error) NSLog(@"Error"); [progressBar setProgress:1.0]; //設為1 表100% rogressBar傳入0~1之間的小數 playbackTimer=[NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(updateProgressView) userInfo:nil repeats:YES]; [self.soundPlayer play]; } #pragma mark - Show Playing Progress -(void)updateProgressView { float total=soundPlayer.duration; float currentPercent=soundPlayer.currentTime / total; float countDownPercent = 1-currentPercent; [progressBar setProgress:countDownPercent]; soundPlayerLabel.text = [NSString stringWithFormat:@"%f", currentPercent]; NSLog(@"soundPlayer.currentTime=%f",soundPlayer.currentTime); NSLog(@"total=%f",soundPlayer.duration); NSLog(@"currentPercent=%f",currentPercent); if (soundPlayer.isPlaying == 0) { [playbackTimer invalidate]; [progressBar setProgress:0.0]; } }
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。