[英]How to play music file after fetching list of songs from Music Library?
在我的应用程序中,我必须制作音乐库。 所以我必须从音乐库中获取歌曲。 我完成了直到这个再见。
Test_MusicLibraryAppDelegate *appDeleg = (Test_MusicLibraryAppDelegate *)[[UIApplication sharedApplication]delegate];
//NSMutableDictionary *musicList = [NSMutableDictionary dictionary];
MPMediaQuery *query = [[MPMediaQuery alloc] init];
[query addFilterPredicate:[MPMediaPropertyPredicate
predicateWithValue:[NSNumber numberWithInteger:(MPMediaTypeMusic)]
forProperty:MPMediaItemPropertyMediaType]];
for (MPMediaItem* item in [query items]) {
[appDeleg.arryMusic addObject:item];
}
NSLog(@"Count :: %d ",[appDeleg.arryMusic count]);
[query release];
而不是在表视图中显示它。
当我必须在所选索引上播放歌曲时,我会获取歌曲名称但不知道如何播放该歌曲,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Test_MusicLibraryAppDelegate *appDeleg = (Test_MusicLibraryAppDelegate *)[[UIApplication sharedApplication]delegate];
// MPMediaItem *song = [appDeleg.arryMusic objectAtIndex:indexPath.row];
NSURL *aURL = [appDeleg.arryMusic objectAtIndex:indexPath.row];
//[song valueForProperty:MPMediaItemPropertyAssetURL];
[[self avPlayer] replaceCurrentItemWithPlayerItem:
[AVPlayerItem playerItemWithURL:aURL]];
[avPlayer play];
}
但我的声音文件不会播放...
嘿,任何人都知道这个比帮助我..
谢谢AJPatel
您没有在数组中存储URL,而是存储MPMediaItem
实例
您需要做的是从媒体项中提取资源URL。 你可以这样做......
MPMediaItem *item = [appDeleg.arryMusic objectAtIndex:indexPath.row];
NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];
[[self avPlayer] replaceCurrentItemWithPlayerItem:[AVPlayerItem playerItemWithURL:url]];
[self.avPlayer play];
你必须初始化一个玩家对象(appdelegate将是一个好位置)
MPMusicPlayerController *musicPlayer; //in .h file
self.musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
[self.musicPlayer setRepeatMode:MPMusicRepeatModeNone];
[self.musicPlayer setShuffleMode:MPMusicShuffleModeOff];
[self.musicPlayer beginGeneratingPlaybackNotifications];
然后必须维护一个用于保存媒体元素的数组
MPMediaItemCollection * userMediaItemCollection; //在.h文件中@property(非原子,保留)MPMediaItemCollection * userMediaItemCollection; //在.h文件中
您必须将媒体项添加到阵列(输入列表)并将其添加到mediacollection列表
[self setUserMediaItemCollection: [MPMediaItemCollection collectionWithItems: (NSArray *) inputList]];
将媒体收藏列表添加到播放器
[APP_DELEGATE.musicPlayer setQueueWithItemCollection: self.userMediaItemCollection];
现在玩
[APP_DELEGATE.musicPlayer play];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.