博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AVAudioPlayer播放人iPod列表中选取的歌曲
阅读量:4115 次
发布时间:2019-05-25

本文共 2241 字,大约阅读时间需要 7 分钟。

有两种方式在代码中去播放从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];

转载地址:http://ptwpi.baihongyu.com/

你可能感兴趣的文章
后台服务的变慢排查思路(轻量级应用服务器中测试)
查看>>
MySQL中InnoDB事务的默认隔离级别测试
查看>>
微服务的注册与发现
查看>>
bash: service: command not found
查看>>
linux Crontab 使用 --定时任务
查看>>
shell编程----目录操作(文件夹)
查看>>
机器学习-----K近邻算法
查看>>
HBASE安装和简单测试
查看>>
关于程序员的59条搞笑但却真实无比的编程语录
查看>>
tomcat 使用心得(问题)-eclipse 启动tomcat 后 浏览器访问404 --eclipse复制工程显示原来的工程名
查看>>
搞笑--一篇有趣的文章编译自一篇西班牙博客。有一位美丽的公主,被关押在一个城堡中最高的塔上,一条凶恶的巨龙看守着她,需要有一位勇士营救她…
查看>>
非常不错 Hadoop 的HDFS (Hadoop集群(第8期)_HDFS初探之旅)
查看>>
Tomcat启动错误,端口占用
查看>>
laravel 修改api返回默认的异常处理
查看>>
高德坐标转换百度坐标 javascript
查看>>
tp5封装通用的修改某列值
查看>>
laravel控制器与模型名称不统一
查看>>
vue登录拦截
查看>>
npm配置淘宝镜像仓库以及electron镜像
查看>>
linux设置开机自启动脚本的最佳方式
查看>>