Iphone 用按钮发出随机的声音

Iphone 用按钮发出随机的声音,iphone,ios,objective-c,Iphone,Ios,Objective C,我正在开发一款iPhone应用程序 所以我有一个视图控制器,它有一个随机按钮,一个UIImage,一个声音播放按钮和一个UILabel。然后我按下随机按钮,我使用切换功能来使用一个随机改变UIImage和UILabel的案例,这很好,但我不知道如何做到播放按钮产生的声音不同 我是说,这可能吗?我知道如何使用arc4random()在每次按下“播放”按钮时播放其他内容,但我希望在按下“随机”按钮时更改声音。。希望它能理解我的问题所在,我很抱歉,但我会尽快上传我制作的代码,但目前我无法访问它。要在每

我正在开发一款iPhone应用程序

所以我有一个视图控制器,它有一个随机按钮,一个UIImage,一个声音播放按钮和一个UILabel。然后我按下随机按钮,我使用切换功能来使用一个随机改变UIImage和UILabel的案例,这很好,但我不知道如何做到播放按钮产生的声音不同


我是说,这可能吗?我知道如何使用arc4random()在每次按下“播放”按钮时播放其他内容,但我希望在按下“随机”按钮时更改声音。。希望它能理解我的问题所在,我很抱歉,但我会尽快上传我制作的代码,但目前我无法访问它。

要在每次按下按钮时播放随机声音,可以使用
arc4random()
正如您在switch语句中提到的,该语句每次选择一个不同的mp3文件url—类似这样的内容

int random = arc4random_uniform(3);
NSString *soundName;

switch (random)
{
   case 0:
     soundName = @"soundone"
     break;
   case 1:
     soundName = @"soundtwo"
     break;
   case 2:
     soundName = @"soundthree"
     break;
   case 3:
     soundName = @"soundfour"
     break;
}

NSString *soundURL = [[NSBundle mainBundle] pathForResource:soundName ofType:@"mp3"];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundURL] error:NULL];
[player play];
为了避免连续播放两次相同的声音,您可以将变量放入
.h
中,添加一个额外的变量来保存先前生成的随机数,然后使用
while()
语句确保新生成的随机数与上一个随机数不同,如下所示

.h

int previousRandomNumber;
int random;
.m

random = arc4random_uniform(3);
NSString *soundName;   

if(random == previousRandomNumber){
    while(random == previousRandomNumber){
        random = arc4random_uniform(3);
    }
}

  previousRandomNumber = random;

    switch (random)
    {
       case 0:
         soundName = @"soundone"
         break;
       case 1:
         soundName = @"soundtwo"
         break;
       case 2:
         soundName = @"soundthree"
         break;
       case 3:
         soundName = @"soundfour"
         break;
    }

}

NSString *soundURL = [[NSBundle mainBundle] pathForResource:soundName ofType:@"mp3"];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundURL] error:NULL];
[player play];

取随机文件,按一下按钮播放。我更喜欢每次按随机按钮时都使用相同的按钮,播放与图像和标签相关的不同声音。这是关于翻译的。你可以使用文本来接收语音。你的意思是说你真的想对声音产生数字效果吗?或者每次按下按钮时播放随机声音?随机声音,我的每个表情都有一个mp3文件感谢您的反馈,但我希望当我以某种方式按下随机按钮时,如果按下的声音与按下随机按钮之前不同,视图上的另一个按钮将播放。我希望这是可能的,我解释得很清楚。你想防止同一个声音连续播放两次吗?