inScript, вы уже нашли решение этой проблемы? Возможно, вы захотите придерживаться чего-то простого, например, if { // do something } else { // do something else }
, чтобы воспроизводить их вплотную.
Для загрузки в массив создайте новый plist-файл (щелкните правой кнопкой мыши на дереве каталогов -> Добавить -> Новый файл "и найдите там список свойств; назовите звуковой список файлов. Затем откройте этот новый файл, щелкните правой кнопкой мыши на там, где по умолчанию написано «Словарь», перейдите к «Тип значения» и выберите «Массив» ... Если вы посмотрите в крайнюю правую часть этой строки, вы увидите маленькую кнопку с 3 полосами, нажмите добавить свой первый элемент. Теперь вы добавляете по одному элементу за раз: «track01», «track02» и т. д. по одному на строку.
Этот код входит в ваш .h файл:
NSArray* soundsList;
Этот код входит в ваш файл .m:
NSString *soundsPath = [[NSBundle mainBundle] pathForResource:@"soundslist" ofType:@"plist"];
soundsList = [[NSArray alloc] initWithContentsOfFile:soundsPath];
Массивы всегда начинаются с индекса # 0 ... так что если у вас есть 5 треков, track01 будет индексом 0, track02 будет индексом 1 и так далее. Если вы хотите быстро опросить свой массив, чтобы увидеть, что в нем, вы можете добавить этот бит кода:
int i = 0;
for (i; i <= ([soundsList count] - 1); i++) {
NSLog(@"soundsList contains %@", [soundsList objectAtIndex:i]);
}
Все, что нужно сделать, это подсчитать, сколько элементов находится в вашем массиве (т. Е. 5 или 10 или сколько угодно песен), и objectAtIndex:
вернет объект с любым индексным номером, который вы отправите в него.
Для одновременного воспроизведения вы просто поместите оператор if-then в метод audioPlayerDidFinishPlaying
Если вы хотите воспроизвести файл, вы можете сделать:
NSString* filename = [soundsList objectAtIndex:YOURINDEXNUMBER];
NSString *path = [[NSBundle mainBundle] pathForResource:filename ofType:@"mp3"];
AVAudioPlayer * newAudio=[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
self.theAudio = newAudio; // automatically retain audio and dealloc old file if new file is loaded
[newAudio release]; // release the audio safely
theAudio.delegate = self;
[theAudio prepareToPlay];
[theAudio setNumberOfLoops:0];
[theAudio play];
где YOURINDEXNUMBER - это любой трек #, который вы хотите воспроизвести (помните, 0 = track01, 1 = track02 и т. Д.)
Если вам нужна помощь в настройке переменных в вашем .h файле, дайте мне знать, и я могу помочь вам в этом. Кроме того, не забудьте высвободить theAudio
в вашем методе dealloc, чтобы он высвобождал его при выходе из программы.