Ich muss einige Audios hintereinander spielen, und daher AVQueuePlayer
für diesen Zweck verwenden. Ich lade Audios in ihm als:Laden AVURLAsset asynchron in AVQueuePlayer stört die Reihenfolge - iOS
for (NSInteger i = row ; i<_messagesArray.count ; i++)
{
_urlString = ((PFFile*)(_messagesArray[i][@"messageFile"])).url;
AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL URLWithString:_urlString] options:nil];
NSArray *keys = @[@"playable"];
AVPlayerItem *item = [AVPlayerItem playerItemWithAsset:asset];
// Subscribe to the AVPlayerItem's DidPlayToEndTime notification.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(itemDidFinishPlaying:) name:AVPlayerItemDidPlayToEndTimeNotification object:item];
if (_queuePlayer == nil)
{
_queuePlayer = [[AVQueuePlayer alloc] initWithPlayerItem:item];
}
else
{ /*This loads Async*/
[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^() {
[_queuePlayer insertItem:item afterItem:nil];
}];
}
}
[_queuePlayer play];
Das Problem ist jetzt, dass ich da bin, das Vermögen von URL über Async
Laden (else
Bedingung im Code siehe oben), die Reihenfolge der Audio-Dateien in meinem AVQueuePlayer
ist wie die URLs in dem _messagesArray
zB nicht gleich: _messagesArray = audioURL1 , audioURL2, audioURL3
dann aufgrund async, je nachdem, was zuerst geladen, geht in AVQueuePlayer
ersten
AVQueuePlayer = audio2 (from URL2) , audio1 (from URL1) , audio3 (from URL3)
Bitte schlagen Sie eine Lösung vor, um die Bestellung in meinem Player zu erhalten.
Danke.
Wenn Sie einfügen, können Sie anhand der Element-URL überprüfen, wo es nach _messageArray ist? – Larme
@Larme können Sie bitte ein wenig ausarbeiten? habe nicht verstanden – hyd00
Bitte jemand helfen ... – hyd00