Я попытался создать свой первый пользовательский класс "AudioPlayer".Я хочу передать данные (название аудио) из таблицы в мой «AudioPlayer» и загрузить AudioPlayer с initWithContentsOfURL: [NSURL fileURLWithPath: path] , но когда я выделяю «AudioPlayer» в моем «MainViewController»я получаю сообщение об ошибке "Несовместимые типы указателей, инициализирующие 'Audio Player * ___ strong' с выражением типа AVAudioPLayer *".Мой вопрос: как бы я инициализировал свой пользовательский аудиоплеер с названием выбранного аудио в качестве URL?Он отлично работает, когда я создал переменную AVAudioPlayer, но я не знаю, как передать ее в свой пользовательский класс.
Вот мой пользовательский класс Header ..
#import <Foundation/Foundation.h>
#import <AVFoundation/AVFoundation.h>
#import <AudioToolbox/AudioToolbox.h>
@interface AudioPlayer : NSObject{
AVAudioPlayer *audioPlayer;
//Volume slider
NSTimer *volumeTimer;
IBOutlet UISlider *volumeSlider;
}
-(bool) isPlaying;
-(bool) isPaused;
-(void)playPause:(id)sender;
@property (nonatomic, retain) AVAudioPlayer *audioPlayer;
@end
Здесьмой файл реализации пользовательского класса ...
#import "AudioPlayer.h"
@implementation AudioPlayer
@synthesize audioPlayer;
-(void)playPause{
if ([audioPlayer isPlaying]) {
[audioPlayer pause];
} else {
[audioPlayer play];
}
}
-(void)volumeSlider
{
//Setup the volume slider
volumeTimer = [NSTimer scheduledTimerWithTimeInterval:0 target:self selector:@selector(updateVolumeSlider) userInfo:nil repeats:YES];
[audioPlayer setVolume:volumeSlider.value];
}
@end
Вот реализация MainView ...
- (void)viewDidLoad
{
[super viewDidLoad];
//Instantiate performanceArray
performanceArray = [[NSMutableArray alloc]initWithObjects:@"Centering", nil];
//Instantiate recoveryArray
recoveryArray = [[NSMutableArray alloc]initWithObjects:@"Power Nap", nil];
//Instantiate the AudioPlayer
UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:self.tableView.indexPathForSelectedRow];
NSString *path = [[NSBundle mainBundle] pathForResource:cell.textLabel.text ofType:@"m4a"];
AudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
[audioPlayer.audioPlayer prepareToPlay];
}