我正在制作一个应用程序,根据视图控制器的选择播放声音文件。我有一个会弹出的视图控制器,它会显示一个带有城市名称,描述,图片和一个应播放简单声音的按钮的视图。在下面的示例中,它将播放名为“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个月,但我仍然很安静的初学者。希望这是有道理的。
答案 0 :(得分:0)
听起来您的视图控制器上已经有City
属性,因此在您的按钮操作中,您应该能够使用soundFile
属性中的声音文件。使用componentsSeparatedByString:
的{{1}}方法分隔名称和扩展名。我想你也可以只传递完整的文件名和NSString
作为扩展名。这个解决方案假定为ARC。
NULL