gpt4 book ai didi

ios - 在 iOS 中打开随机播放模式时,NowPlayingItem 的索引出错

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:16 25 4
gpt4 key购买 nike

我现在正在播放 iPod 库中的歌曲,该歌曲使用 iPodMusicPlayer 加载到 myArray 中。

我们可以使用 indexOfNowPlayingItem 从 NowPlaying 音乐中获取索引。

但是当我 Shuffle Modeon 时,那个 indexOfNowPlayingItem 属性的返回索引是完全错误的。

ShuffleMode关闭之前,indexOfNowPlayingItem可以使用并正确。

但是当 ShuffleMode 打开时,indexOfNowPlayingItem 计数仅增加 1 (++)。

像那样

indexOfNowPlayingItem++;

对于打开的 ShuffleMode 不正确。

那么当 ShuffleMode 开启时我怎样才能得到正确的索引呢?

感谢您的帮助。

最佳答案

我的解决方案是当你设置你的播放列表时,也设置一个 NSMutableDictionary 与(索引,MPMediaEntityPropertyPersistentID)的播放列表。

当您需要歌曲索引时,只需使用歌曲持久性 id 即可。

- (void) setPlaylistIndexDictionary:(MPMediaItemCollection *)playlistItems
{
playlistIndexDict = [[NSMutableDictionary alloc] init];
NSNumber *count = [[NSNumber alloc] initWithInt:0];
for (MPMediaItem *item in [playlistItems items]) {
[playlistIndexDict setObject:count forKey:[item valueForProperty:MPMediaEntityPropertyPersistentID]];
count = [NSNumber numberWithInt:count.intValue + 1];
}
}


- (NSString *) getCurrentSongId
{
NSString* songId = [[musicPlayer nowPlayingItem] valueForProperty:MPMediaEntityPropertyPersistentID];

return songId;
}

使用:

NSString *songId = [musicController getCurrentSongId];
int songIndex = [[[musicController playlistIndexDict] objectForKey:songId] intValue];

关于ios - 在 iOS 中打开随机播放模式时,NowPlayingItem 的索引出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14660174/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com