【问题标题】:How do I clear the queue of a MPMusicPlayerController?如何清除 MPMusicPlayerController 的队列?
【发布时间】:2023-04-09 19:05:01
【问题描述】:

我正在尝试复制 iPod 应用程序的清除队列功能,但是我无法创建用于调用 setQueueWithItemCollection 的空 MPMediaItemCollection:

例如

[self.musicPlayer setQueueWithItemCollection:[MPMediaItemCollection collectionWithItems:[NSArray array]]];

musicPlayer 是 MPMusicPlayerController。

抛出异常:

*** Terminating app due to uncaught exception 'MPMediaItemCollectionInitException', reason: 'items array must not be empty'

有没有办法清除 MPMusicPLayerController 队列来避免这个问题?

非常感谢任何帮助, 简历

【问题讨论】:

    标签: iphone iphone-sdk-3.0 mpmediaitemcollection


    【解决方案1】:

    我不知道你是否已经设法克服了你的问题,但这里有一个似乎对我有用的解决方法。

    MPMediaPropertyPredicate *predicate =
        [MPMediaPropertyPredicate predicateWithValue: @"Non_Existant_Song_Name"
                                         forProperty: MPMediaItemPropertyTitle];
    MPMediaQuery *q = [[MPMediaQuery alloc] init];
    [q addFilterPredicate: predicate];
    [self.player.controller setQueueWithQuery:q];
    self.player.controller.nowPlayingItem = nil;
    [self.player.controller stop];
    

    这基本上是通过一个您确定永远不会出现任何歌曲的查询来设置播放队列。理想情况下是一个真正快速执行的查询。然后它使 nowPlayingItem 无效,然后告诉玩家停止。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2012-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-03
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多