MPMediaItem不使用MPMediaItemPropertyAssetURL在AVAudioPlayer中播放

我有这个代码,find并播放MPMediaItem:

MPMediaPropertyPredicate *predicate = [MPMediaPropertyPredicate predicateWithValue:self.persistentIDOfSongToPlay forProperty:MPMediaItemPropertyPersistentID comparisonType:MPMediaPredicateComparisonContains]; NSSet *predicateSet = [NSSet setWithObject:predicate]; MPMediaQuery *searchQuery = [[MPMediaQuery alloc] initWithFilterPredicates:predicateSet]; NSArray *queryResults = [searchQuery items]; NSLog(@"count: %i", queryResults.count); MPMediaItem *item = [queryResults objectAtIndex:0]; NSLog(@"item: %@", item); NSURL *itemURL = [item valueForProperty:MPMediaItemPropertyAssetURL]; NSLog(@"url: %@", itemURL); NSError *error; AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:itemURL error:&error]; [audioPlayer prepareToPlay]; [audioPlayer play]; NSLog(@"error: %@", error); 

我的日志:

 count: 1 item: <MPConcreteMediaItem: 0x200b0870> 12385304089059716916 url: ipod-library://item/item.m4a?id=-6061439984649834700 error: (null) 

但audio不播放。 我有音量,另一个AVAudioPlayer,执行一个不同的function,以后播放audio罚款。

AVAudioPlayer必须被声明为一个属性或伊娃,以便在方法结束后能够存活。

Interesting Posts