首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Audioplayer按条件播放

Audioplayer按条件播放
EN

Stack Overflow用户
提问于 2010-09-16 17:09:02
回答 2查看 167关注 0票数 1

我有几张图片,我通过for循环显示这些图片,所以我在mCurrentImageView中得到一个值,它表明当前显示的是哪张图片。

现在我想在每个图像视图上播放音频,不同的音频。对于ex来说,

代码语言:javascript
运行
复制
if(mCurrentImageView ==0) {
play "a"
}
if (mCurrentImageView ==1)
{
play "b"
}
....

类似于dat。但是我不确定怎么做,因为我应该有一个音频播放器,它应该根据mCurrentImageView的值播放不同的音频。

这是我的Avaudioplayer播放器代码

代码语言:javascript
运行
复制
filePath = [[NSBundle mainBundle] pathForResource:@"b"ofType:@"mp3"];
    fileURL = [[NSURL alloc] initFileURLWithPath:filePath];
    player = [[AVAudioPlayer alloc] initWithContentsOfURL:fileURL error:nil];
    [player prepareToPlay];
    [player play];

请建议,我应该怎么做才能走得更远。

问候

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-20 12:56:30

AVAudioPlayer只允许您在初始化时指定一个URL,因此,正如eviltrue所说,您必须创建一个新的URL来播放不同的文件。例如,假设你有一个保存路径的属性和一个播放器的属性:

代码语言:javascript
运行
复制
@property (readonly, copy) NSArray *paths;
@property (readwrite, retain) AVAudioPlayer *player;

并且您已经初始化了路径:

代码语言:javascript
运行
复制
paths = [[NSArray alloc] initWithObjects:@"a", @"b", @"c", nil];

当镜像发生变化时,您可以执行以下操作:

代码语言:javascript
运行
复制
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
EN

Stack Overflow用户

发布于 2010-09-16 17:15:53

最简单的解决方案是使用AVAudioPlayer。因此,当你想播放新的声音时,你只需要释放旧的播放器,并用你想要播放的文件创建一个新的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3725218

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档