我的应用程序中的音频,播放暂停滑块

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;

【讨论】:

以上是关于我的应用程序中的音频,播放暂停滑块的主要内容,如果未能解决你的问题,请参考以下文章

当另一个应用开始播放音频时,如何自动暂停我的应用中的音频播放器?

目标c音频播放器选项[关闭]

当我的应用程序中的音频播放器启动时 Spotify 暂停

如何将我的搜索滑块与 HTML 中的音频播放器链接?

swift:音频滑块控件

如何在kivy python中使用滑块作为进度条并控制音频?