Аудиоплеер играет при условии - PullRequest
1 голос
/ 16 сентября 2010

У меня несколько изображений, и я показываю эти изображения в цикле for, поэтому я получаю значение в mCurrentImageView, которое указывает, какое изображение отображается в данный момент.

Теперь я хочу воспроизводить звук на каждомпросмотр изображений, разные аудиозаписи.например,

if(mCurrentImageView ==0) {
play "a"
}
if (mCurrentImageView ==1)
{
play "b"
}
....

что-то вроде дат.но я не уверен, как это сделать, так как у меня должен быть один аудиоплеер, который должен проигрывать разные аудиофайлы на основе значения opf mCurrentImageView.

это мой код Avaudioplayer

filePath = [[NSBundle mainBundle] pathForResource:@"b"ofType:@"mp3"];
    fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [player prepareToPlay];
    [player play];

плзподскажите, что мне делать, чтобы двигаться дальше.

regards

Ответы [ 2 ]

3 голосов
/ 20 сентября 2010

AVAudioPlayer позволяет указывать только URL-адрес при его инициализации, поэтому, как говорит eviltrue, вы должны создать новый для воспроизведения другого файла. Например. при условии, что у вас есть свойство, содержащее пути и свойство для игрока:

@property (readonly, copy) NSArray *paths;
@property (readwrite, retain) AVAudioPlayer *player;

И вы инициализировали пути:

paths = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil];

Вы можете сделать следующее при изменении изображения:

NSString *path = [paths objectAtIndex:mCurrentImage];
filePath = [[NSBundle mainBundle] pathForResource:path ofType:@"mp3"];
fileURL = [NSURL fileURLWithPath:filePath];
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
self.player = newPlayer;
[newPlayer release];
[self.player prepareToPlay];
[self.player play];
3 голосов
/ 16 сентября 2010

Самое простое решение - использовать AVAudioPlayer. Поэтому, когда вы хотите воспроизвести новый звук, вы просто выпускаете старый плеер и создаете новый с файлом, который хотите воспроизвести.

...