Avaudioplayer مع عنوان URL الخارجي إلى *.m4p
-
05-07-2019 - |
سؤال
مشكلتي هي التالية. حصلت على هذا الرمز وأعتقد أن nsurl فاسد لأن Avaudioplayer هو لا شيء بعد التهيئة:
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];
أي اقتراحات ما هو الخطأ هنا؟
ويوضح & Error هذا:
Error Domain=NSOSStatusErrorDomain Code=-43 "Operation could not be completed. (OSStatus error -43.)"
المحلول
جربت هذا أولاً ولكن حصلت على خطأ 2003334207:
NSData *soundData = [NSData dataWithContentsOfURL:URL];
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithData:soundData error:&error];
يبدو أن Avaudioplayer يريد حقًا ملفًا. لذلك أضع البيانات في ملف أولاً:
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);
نصائح أخرى
يعمل Avaudioplayer فقط مع عنوان URL المحلي. يجب أن يكون عنوان URL للملف (ملف: //)
بدلاً من استخدام AvaudiOplayer ، يمكنك استخدام Avplayer. يعمل Avplayer أيضًا مع عناوين URL عن بعد
لا تنتمي إلى StackOverflow