Frage

Mein Problem ist folgendes. Ich habe diesen Code, und ich denke, eine korrupte NSURL da die AVAudioPlayer Null ist nach der Initialisierung:

NSString *dummyURLString = @"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p";
NSError *error;
NSURL *url = [NSURL URLWithString:dummyURLString]; 
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
[player play];

Irgendwelche Vorschläge, was hier schief geht?

Die & Fehler zeigt dies:

Error Domain=NSOSStatusErrorDomain Code=-43 "Operation could not be completed. (OSStatus error -43.)"
War es hilfreich?

Lösung

Ich habe versucht, das erste bekam aber Fehler 2003334207:

NSData *soundData = [NSData dataWithContentsOfURL:URL];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:soundData error:&error];

Es scheint, dass AVAudioPlayer wirklich eine Datei will. Also habe ich die Daten in eine Datei zuerst:

NSURL *url = [NSURL URLWithString:@"http://a825.phobos.apple.com/us/r2000/005/Music/d8/a8/d2/mzi.jelhjoev.aac.p.m4p"]; 
NSData *soundData = [NSData dataWithContentsOfURL:url];
NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                        NSUserDomainMask, YES) objectAtIndex:0] 
                        stringByAppendingPathComponent:@"sound.caf"];
[soundData writeToFile:filePath atomically:YES];
player = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL
                fileURLWithPath:filePath] error:NULL];  
NSLog(@"error %@", error);

Andere Tipps

AVAudioPlayer funktioniert nur mit lokalem URLs. Es muss eine Datei URL sein (file: //)

Siehe Apple Technical Q & A QA1634

Anstelle der Verwendung der AVAudioPlayer können Sie die AVPlayer verwenden. Die AVPlayer funktioniert auch mit Remote-URLs

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top