在iOS应用中播放声音文件

时间:2013-03-25 17:52:57

标签: ios

我正在制作一个应用程序,根据视图控制器的选择播放声音文件。我有一个会弹出的视图控制器,它会显示一个带有城市名称,描述,图片和一个应播放简单声音的按钮的视图。在下面的示例中,它将播放名为“slang4”的声音文件。这是我的按钮在实现文件中的代码:

- (IBAction)soundButton:(id)sender{ 


    CFBundleRef mainBundle=CFBundleGetMainBundle();
    CFURLRef soundFileURLRef;
    soundFileURLRef=CFBundleCopyResourceURL(mainBundle, (CFStringRef)@"slang4", CFSTR("mp3"),NULL);
    UInt32 soundID;
   AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID);
   AudioServicesPlaySystemSound(soundID);

}

问题在于我希望按钮根据原始视图控制器(城市列表)中的选项播放不同的声音。

例如,我的app代理实施文件中的代码显示了每个城市如何使用不同的声音文件:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    City *london = [[City alloc]init];
    london.cityName = @"London";
    london.cityDescription = @"The cap of UK.";
    london.cityPicture = [UIImage imageNamed:@"London.jpg"];
    london.soundFile=@"slang4.mp3";

    City *sanFranciso = [[City alloc]init];
    sanFranciso.cityName = @"San Francisco";
    sanFranciso.cityDescription=@"City by the Bay";
    sanFranciso.cityPicture = [UIImage imageNamed:@"SanFranciso.jpg"];
    sanFranciso.soundFile=@"babymama.mp3";

我的问题是我希望按钮能够根据城市知道要播放哪个soundFile。我一直在教自己iOS编程大约8个月,但我仍然很安静的初学者。希望这是有道理的。

1 个答案:

答案 0 :(得分:0)

听起来您的视图控制器上已经有City属性,因此在您的按钮操作中,您应该能够使用soundFile属性中的声音文件。使用componentsSeparatedByString:的{​​{1}}方法分隔名称和扩展名。我想你也可以只传递完整的文件名和NSString作为扩展名。这个解决方案假定为ARC。

NULL