创建一个全局的Audioplayers阵列

时间:2010-12-18 12:56:46

标签: iphone objective-c

如何创建一个全局的音频播放器阵列,以便我可以从其他课程中调用播放器。

Java等同于静态?

我想播放多个声音。每个玩家需要一个不同的玩家,或者一个玩家是否只需要随机播放声音?

由于

2 个答案:

答案 0 :(得分:0)

您可以在AppDelegate类中创建一个数组(NSMutableArray),并且可以向该数组添加不同的actor对象,并且可以从任何类访问该数组

在App Delegate文件中, 在.h文件中

NSMutableArray *playersArray;

@property (nonatomic,retain)NSMutableArray *playersArray;
<。>在.m文件中初始化该数组

playersArray = [[NSMutableArray alloc] init];

在其他文件中,您可以按如下方式访问该数组

 AppDelegateClassName *appDelegate = (AppDelegateClassName *)[[UIApplication sharedApplication] delegate];

[appDelegate.playersArray addObject:onePlayerObject];

同样,您可以通过从该数组中读取来访问该播放器对象。

此致

萨蒂亚。

答案 1 :(得分:0)

你不需要一系列球员。一个球员就够了

在你的appDelegate中声明这个

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
   player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:resourcePath] error:&err];
}

-(void)playAudio:(NSString *)fileName
{
    NSString* resourcePath = [[NSBundle mainBundle] resourcePath];
    NSString* file=[NSString stringWithFormat:@"/%@",fileName];
    resourcePath = [resourcePath stringByAppendingString:file];
    NSLog(@"Path : %@",resourcePath);
    NSError* err;
    //Declare the player in your didFinishLaunching Dont declare here
    player.delegate = self;
    [player play];
}

现在,无论您想在何处播放任何文件,都可以创建appDelegate的对象

yourAppDelegate  *yourAppDelegateObject= (yourAppDelegate *)[[UIApplication sharedApplication] delegate];

使用该对象调用该函数

 [yourAppDelegateObject playAudio:filenameOftheAudioFile];