Воспроизведение звука через http сервер iOS - PullRequest
0 голосов
/ 07 ноября 2011

Привет. Я хочу воспроизвести файл mp3 через мой сервер, например, http://test.com/hi.mp3

. В данный момент код воспроизводит файл, если он находится в каталоге кода.Код также включает только 1 звук за раз.

- (IBAction)oneSound:(id)sender; {
    NSString *path = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"mp3"];
    if (theAudio) [theAudio release];
    NSError *error = nil;
    theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:path] error:&error];
    if (error)
        NSLog(@"%@",[error localizedDescription]);
    theAudio.delegate = self;
    [theAudio play];   


}

Однако этот код позволяет мне воспроизводить звук через http-сервер, но я могу воспроизводить несколько звуков одновременно, мне нужен звук в сеансахпоэтому только 1 звук может воспроизводиться одновременно.У меня 10 звуков.

- (IBAction)oneSound:(id)sender; {

    AVPlayer *player = [[AVPlayer playerWithURL:[NSURL URLWithString:@"http://www.mysite.com/hi.mp3"]] retain];

    [player play];

}

1 Ответ

0 голосов
/ 08 ноября 2011

Мое предложение было бы переместить указатель для вашего плеера из объявленного в этом методе так, чтобы он был объявлен на уровне модуля (в файле .h) - либо только определенный в интерфейсе, либо определенный как @property , Затем вы можете получить доступ к этому проигрывателю другим способом позже.

Тогда, когда вы захотите переключиться на новый звук другим способом, вы можете попробовать:

[player pause];    // stop the player from playing
[player release];  // free the reference count
// start a new plaer
player = [[AVPlayer playerWithURL:
         [NSURL URLWithString:@"http://www.mysite.com/nextsound.mp3"]] retain];

Вы должны быть осторожны с вызовом «сохранить» здесь. PlayerWithURL будет передавать обратно автоматически выпущенный объект, поэтому в зависимости от того, что вы делаете в других местах с пулами автоматического выпуска, и в зависимости от того, используете ли вы свойство, включающее (сохраняющее) в его определении, вам может не потребоваться вызывать сохранение здесь.

...