XamarinMediaManager:在CrossMediaManager中更改MediaQueue的CurrentPosition

时间:2019-04-29 14:35:08

标签: xamarin

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

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

样本选项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();

1 个答案:

答案 0 :(得分:0)

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