• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何使用 MPMediaPickerController 使用单个 UIButton 单击选择单个歌曲

[复制链接]
菜鸟教程小白 发表于 2022-12-13 09:38:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有四个 UIButton 可以使用 MPMediaPickerController 从库中选择歌曲。 现在我想要的是 当我按下 UIButton1 时,它应该打开选择歌曲 1 的选择器。 当我按下 UIButton2 时,它应该打开选择歌曲 2 的选择器。 UIButton3 和 UIButton4 也一样。

我可以在哪里更改以实现上述内容。

这是我当前的代码。

-(IBAction)SelectSongClickid)sender
{
    MPMediaPickerController *picker = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeAnyAudio];
    [picker setDelegate:self];
    [picker setAllowsPickingMultipleItems: NO];

if((UIButton*)sender == btnSelect1)
{
    [playerView1 removeFromSuperview];
    [player pause];
    picker.title = @"1";
}
else if ((UIButton*)sender == btnSelect2)
{
    NSLog(@"select 2 selected");

    [playerView2 removeFromSuperview];
    [player pause];
    picker.title = @"2";
}
else if ((UIButton*)sender == btnSelect3)
{
    NSLog(@"select 3 selected");
    [playerView3 removeFromSuperview];
    [player pause];
    picker.title = @"3";
}
else
{
    NSLog(@"select 4 selected");
    [playerView4 removeFromSuperview];
    [player pause];
    picker.title = @"4";
}

[self presentViewController:picker animated:YES completion:NULL];

}

- (void)mediaPickerMPMediaPickerController *) mediaPicker didPickMediaItemsMPMediaItemCollection *) 集合 { [ self dismissViewControllerAnimated:YES完成:NULL]; MPMediaItem *item = [[收藏项] objectAtIndex:0]; NSString *title = [item valueForProperty:MPMediaItemPropertyTitle]; url = [item valueForProperty:MPMediaItemPropertyAssetURL]; [self playURL:url withPickerTag:mediaPicker.title]; NSLog(@"URL 1 : %@",url); self.sendAudio = 网址; }



Best Answer-推荐答案


如果我正确理解了您的问题,那么您想更改方法:- (void)mediaPickerMPMediaPickerController *) mediaPicker didPickMediaItemsMPMediaItemCollection *) collection 这样您就可以从中获取选定的按钮索引?

@interface ViewController 上方创建枚举:

typedef enum {
    WaveFormType_1, //you can name these enums as you want
    WaveFormType_2,
    WaveFormType_3,
    WaveFormType_4
}WaveFormType;

然后创建一个变量 WaveFormType waveType; 并根据点击的按钮在 -(IBAction)SelectSongClickid)sender 中为其赋值。然后使用这个值。

- (void)mediaPickerMPMediaPickerController *) mediaPicker didPickMediaItemsMPMediaItemCollection *) collection
{   
    [self dismissViewControllerAnimated:YES completion:NULL];

    MPMediaItem *item = [[collection items] objectAtIndex:0];
    [self.playItem:item]
}

-(void)playItemMPMediaItem *)item{
     NSString *title = [item valueForProperty:MPMediaItemPropertyTitle];
     NSURL *url = [item valueForProperty:MPMediaItemPropertyAssetURL];

     if (self.waveType == WaveFormType_1){

         // play with the first waveform type
         // label.text = title ..

     }else if(self.waveType == WaveFormType_2){

         // play with the second waveform type
         // label.text = title ..
   }
   // an so on
}

关于ios - 如何使用 MPMediaPickerController 使用单个 UIButton 单击选择单个歌曲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871038/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap