首页 > 解决方案 > XamarinMediaManager:在 CrossMediaManager 中更改 MediaQueue 的 CurrentPosition

问题描述

我在 Xamarin Forms 应用程序中使用 XamarinMediaManager ( https://github.com/martijn00/XamarinMediaManager ) 并想设置我的 MediaQueue 的 CurrentPosition。因此,假设我有一个包含音频文件 A、B 和 C 的播放列表,但不是从播放音频文件 A 开始,而是从 B 开始。所以我可以执行上一个,然后播放 A。

我确实设置了 MediaQueue 的 CurrentPosition(请参阅选项 1 和选项 2),但两者似乎都没有效果或在媒体播放器启动后被重置。

示例选项 1

var media = new[]{
pathA,
pathB,
pathC,
};

await CrossMediaManager.Current.Play(media );
CrossMediaManager.Current.MediaQueue.CurrentIndex = 1;

示例选项 2

var extractor = CrossMediaManager.Current.MediaExtractor

CrossMediaManager.Current.MediaQueue.Add(await extractor.CreateMediaItem(pathA)); 
CrossMediaManager.Current.MediaQueue.Add(await extractor.CreateMediaItem(pathB));
CrossMediaManager.Current.MediaQueue.Add(await extractor.CreateMediaItem(pathC));

CrossMediaManager.Current.MediaQueue.CurrentIndex = 1;

//与现有播放方法中的代码相同

var mediamanager = CrossMediaManager.Current as MediaManagerImplementation;    mediamanager.MediaBrowserManager.MediaController.GetTransportControls().Prepare();

标签: xamarin

解决方案


根据此处的文档: https://github.com/Baseflow/XamarinMediaManager,您需要调用: await CrossMediaManager.Current.PlayQueueItem(int index);


推荐阅读