我的应用程序中的音频,播放暂停滑块
Posted
技术标签:
【中文标题】我的应用程序中的音频,播放暂停滑块【英文标题】:Audio in my App, play pause slider 【发布时间】:2012-06-13 18:38:17 【问题描述】:伙计们,我在将 UISlider 合并到我的音频应用程序时遇到了错误,任何建议都会很棒,这是我的第一个应用程序,我是新手...
曲目播放正常,停止正常,但是当我尝试跳过应用程序崩溃时,我确定我错过了一些东西,只是需要对代码有一些新的认识,希望有人能提供建议......
NoGraceViewController.h
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface NoGraceViewController : UIViewController<AVAudioPlayerDelegate>
AVAudioPlayer *audioPlayer;
UISlider *volumeControl;
@property(nonatomic,retain)IBOutlet UISlider *volumeControl;
@property(nonatomic,retain) AVAudioPlayer *audioPlayer;
@property (weak, nonatomic) IBOutlet UITextField *timeLabel;
@property (weak, nonatomic) IBOutlet UISlider *skipSlider;
-(IBAction) nograceButton;
-(IBAction)playbutton;
-(IBAction)stopbutton;
-(IBAction)skipSliderMoved;
@end
NoGraceViewController.m
#import "NoGraceViewController.h"
@interface NoGraceViewController ()
@end
@implementation NoGraceViewController
@synthesize skipSlider;
@synthesize timeLabel;
-(IBAction) nograceButton
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"http://itunes.apple.com/us/album/no-grace-original-mix-single/id392597812?uo=4"]];
@synthesize audioPlayer;
- (IBAction)playbutton
[audioPlayer play];
-(IBAction)stopbutton
[audioPlayer stop];
- (IBAction)skipSliderMoved:(UISlider *)sender
self.audioPlayer.currentTime = self.audioPlayer.duration*sender.value;
- (void)viewDidLoad
[super viewDidLoad];
NSURL *url=[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"001.mp3" ofType:nil]];
NSError *error;
audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:url error:&error];
if (error)
NSLog(@"Error in audioPlayer: %@",
[error localizedDescription]);
else
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
- (void)viewDidUnload
[self setSkipSlider:nil];
[self setTimeLabel:nil];
self.volumeControl=nil;
self.audioPlayer=nil;
-(void)updateDisplay
self.skipSlider.value = self.audioPlayer.currentTime / self.audioPlayer.duration;
NSString *timeString = [[NSString alloc] initWithFormat:@"%d:%02d", (int) self.audioPlayer.currentTime / 60,(int) self.audioPlayer.currentTime % 60];
self.timeLabel.text = timeString;
@end
【问题讨论】:
【参考方案1】:试试这个:
self.audioPlayer.currentTime = (self.audioPlayer.duration / 100) * sender.value;
【讨论】:
以上是关于我的应用程序中的音频,播放暂停滑块的主要内容,如果未能解决你的问题,请参考以下文章