AVAudioPlayer播放人iPod列表中选取的歌曲

有两种方式在代码中去播放从ipod列表中选取的歌曲

1, 使用AVAudioPlayer, 代码如下:

先弹出选曲界面

MPMediaPickerController *mpPickerController = [[MPMediaPickerControlleralloc] initWithMediaTypes:MPMediaTypeAnyAudio];

[selfpresentViewController:mpPickerController animated:YEScompletion:^{}];

mpPickerController.delegate =self;

[mpPickerControllerrelease];



然后实现它的代理方法

- (void)mediaPicker:(MPMediaPickerController *)mediaPicker didPickMediaItems:(MPMediaItemCollection *)mediaItemCollection {

NSLog(@"select mediaItemCollection.items=%@, representativeItem=%@", mediaItemCollection.items, [mediaItemCollection representativeItem]);

// 选到的歌曲

MPMediaItem *selectedSong = [[mediaItemCollectionitems] objectAtIndex:0];

NSURL *songURL = [selectedSongvalueForProperty:MPMediaItemPropertyAssetURL]; // 歌曲的URL通常为ipod-library://item/item.mp3?id=-7350999950458851124

NSString *songTitle = [selectedSongvalueForProperty:MPMediaItemPropertyTitle]; // 歌曲的Title

NSString *songURLString = [songURL absoluteString]; // 转换为NSString

NSLog(@"songURL=%@, songURLString=%@, songTitle=%@", songURL, songURLString, songTitle);

// 进入到使用AVAudioPlayer的界面

[selfdismissViewControllerAnimated:YEScompletion:^{

GameShowsViewController *gameShowsVC = [[GameShowsViewControlleralloc] initWithNibName:[NSStringstringWithFormat:@"%@", (ISIPAD?@"GameShowsView_IPAD":@"GameShowsView")]bundle:nil];

gameShowsVC.selectedMusicInfo = [NSDictionarydictionaryWithObjectsAndKeys:

songURLString,@"SongName",

@"NoPic.png", @"Picture",

@"Heqin", @"Player",

songTitle,@"SongTitle",

nil];

[self.navigationControllerpushViewController:gameShowsVC animated:NO];

[gameShowsVCrelease];

}];

}


// 在播放界面中使用,
上面把NSURL转成了NSString, 接下来可以把这个NSString再回转成NSURL,然后再进行播放

NSURL *fileURL = [NSURLURLWithString:fileName];

bgMusicPlayer = [[AVAudioPlayeralloc] initWithContentsOfURL:fileURLerror:nil];

即可以进行播放

2, 另一种方式是使用 MPMusicPlayerController

MPMusicPlayerController *appMusicPlayer = [MPMusicPlayerControllerapplicationMusicPlayer];

[appMusicPlayer setShuffleMode:MPMusicShuffleModeOff];

[appMusicPlayer setRepeatMode:MPMusicRepeatModeNone];


[appMusicPlayersetQueueWithItemCollection:mediaItemCollection]; // 这里的参数mediaItemCollection直接来自于代理方法,-(void)mediaPicker:(MPMediaPickerController*)mediaPicker didPickMediaItems:即可。

[appMusicPlayerplay];




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值