我有几张图片,我通过for循环显示这些图片,所以我在mCurrentImageView中得到一个值,它表明当前显示的是哪张图片。
现在我想在每个图像视图上播放音频,不同的音频。对于ex来说,
if(mCurrentImageView ==0) {
play "a"
}
if (mCurrentImageView ==1)
{
play "b"
}
....类似于dat。但是我不确定怎么做,因为我应该有一个音频播放器,它应该根据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];请建议,我应该怎么做才能走得更远。
问候
发布于 2010-09-20 12:56:30
AVAudioPlayer只允许您在初始化时指定一个URL,因此,正如eviltrue所说,您必须创建一个新的URL来播放不同的文件。例如,假设你有一个保存路径的属性和一个播放器的属性:
@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];发布于 2010-09-16 17:15:53
最简单的解决方案是使用AVAudioPlayer。因此,当你想播放新的声音时,你只需要释放旧的播放器,并用你想要播放的文件创建一个新的。
https://stackoverflow.com/questions/3725218
复制相似问题