我是iPhone编程的新手。使用下面的代码,我正在显示带有音频的图像。我已经存储在数组中的图像和音频。在audioPlayerDidFinishPlaying
方法完成音频后,我正在使用此代码,我正在显示带有音频的下一个图像。
一切都很好。但问题是在音频和图像完成之后,它再次来自开始。可能是下面代码中的一些问题可以任何人纠正它plz ..
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
for (NSString* path in array000)
{
[blaukypath2 addObject:[UIImage imageWithContentsOfFile:path]];
NSLog(@"%@",path);
}
currentImage++;
NSError *error;
if (currentImage >= blaukypath2.count) currentImage = 0;
UIImage *blaukyyimag = [blaukypath2 objectAtIndex:currentImage];
[img10 setImage:blaukyyimag];
NSLog(@"%icurrentImage++ DIDF",currentImage);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[audiopath2 objectAtIndex:currentImage] error:&error] ;
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
}
答案 0 :(得分:1)
如果您不想重复图像和音频,请在代码中删除此行..
if (currentImage >= blaukypath2.count) currentImage = 0;
因为这一行会使你的currentImage为0.所以循环将重新开始。
<强>更新强>
这样做
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
for (NSString* path in array000)
{
[blaukypath2 addObject:[UIImage imageWithContentsOfFile:path]];
NSLog(@"%@",path);
}
if (currentImage < blaukypath2.count)
{
currentImage++;
NSError *error;
UIImage *blaukyyimag = [blaukypath2 objectAtIndex:currentImage];
[img10 setImage:blaukyyimag];
NSLog(@"%icurrentImage++ DIDF",currentImage);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[audiopath2 objectAtIndex:currentImage] error:&error] ;
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
}
}
答案 1 :(得分:0)
在播放下一个音频之前,请停止前一个音频。
[audioPlayer stop];
希望它适合你。
答案 2 :(得分:0)
创建一个实例变量int arrayIndex;初始化为= 0
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
if([array000 count] > arrayIndex) {
NSString* path = [arrayIndex objectAtIndex:arrayIndex];
[blaukypath2 addObject:[UIImage imageWithContentsOfFile:path]];
NSLog(@"%@",path);
currentImage++;
NSError *error;
if (currentImage >= blaukypath2.count) currentImage = 0;
UIImage *blaukyyimag = [blaukypath2 objectAtIndex:currentImage];
[img10 setImage:blaukyyimag];
NSLog(@"%icurrentImage++ DIDF",currentImage);
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[audiopath2 objectAtIndex:currentImage] error:&error] ;
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];
}
arrayIndex++;
} else {
[audioPlayer stop];
}
尝试这种方法,让我知道它是否有效