avplayer не работает в ios 4.3 - PullRequest
1 голос
/ 27 февраля 2012

У меня есть возможность слушать mp3 песню в моем приложении. Я использую AVPLAYER Вот код

player = [[AVPlayer alloc] initWithURL:[NSURL fileURLWithPath:filePath]];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playingItemDidEnd) name:AVPlayerItemDidPlayToEndTimeNotification object:player]; 
    [player play];
    timer = [NSTimer scheduledTimerWithTimeInterval:0.5f target:self selector:@selector(checkTime) userInfo:nil repeats:YES];

Так что, когда я использую IOS 5.0, у меня это в отладке Ошибка загрузки /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen (/System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/utents/ResourcesInu MacOS / AudioIPCPlugIn, 262): символ не найден: __ CFObjCIsCollectable Ссылка на: /System/Library/Frameworks/Security.framework/Versions/A/Security Ожидается в: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation в /System/Library/Frameworks/Security.framework/Versions/A/Security 2012-02-27 15: 21: 27.717 LifesMusic [4161: 10703] Ошибка загрузки /System/Library/Extensions/AudioIPCDriver.kext/Contents/Resources/AudioIPCPlugIn.bundle/Contents/MacOS/AudioIPCPlugIn: dlopen (/ System / Library / Расширения / AudioIPCDriver.kext / Содержание / Ресурсы / AudioIPCPlugIn.bundle / Содержание / MacOS / AudioIPCPlugIn, 262): символ не найден: _ _CFObjCIsCollectable Ссылка на: /System/Library/Frameworks/Security.framework/Versions/A/Security Ожидается в: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation в /System/Library/Frameworks/Security.framework/Versions/A/Security

Но это все еще работает. Но в IOS 4.3 это не работает вообще. Может кто-нибудь помочь мне решить эту проблему? Спасибо

Ответы [ 2 ]

0 голосов
/ 02 ноября 2012

Я также получил ту же ошибку (ошибка OSStatus 1685348671), когда пытался воспроизвести mp3-файлы на iOS 4.3.

Позже я обнаружил, что проблема со звуком mp3 делает его несовместимым для воспроизведения в iOS4,3.Итак, я использовал iTunes Player, чтобы конвертировать новую версию звука в формате MP3 в существующую.Теперь он работает отлично и лучше.

Шаги:

Откройте текущий звук mp3 в iTunes. Выберите его и нажмите «Расширенное» меню >> «Создать версию MP3». Он создаст копию текущегоаудио.Используйте только что созданный mp3-файл для вашего приложения.

Это помогло мне.Я надеюсь, что это может помочь и другим.Всего наилучшего!

0 голосов
/ 27 февраля 2012

Прежде всего: вы должны прочитать документ Apple Руководство по программированию мультимедиа и понять, что вы делаете ...

Также убедитесь, что вы связали инфраструктуру AV Foundation со своим проектом, импортированнымэто правильно, и ваш контроллер «слушает» AVAudioPlayerDelegate.

В вашем контроллере .h-файл:

@property (nonatomic, retain) AVAudioPlayer *player;

В ваших контроллерах .m-file:

@synthesize player;

В вашем методе, который «проигрывает» песню:

NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: @"song" ofType: @"mp3"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL error: nil];
[fileURL release];
self.player = newPlayer;
[newPlayer release];

[player setDelegate: self];
[player prepareToPlay];
[player play];

Метод делегирования для повторения песни:

- (void) audioPlayerDidFinishPlaying:(AVAudioPlayer*)player successfully:(BOOL)completed {
    if (completed == YES) {
        [player play];
    }
}
...