WinUI 3桌面应用中实现4首歌曲循环播放列表功能求助
WinUI3 桌面应用实现多首歌曲循环播放列表
核心方案:使用 MediaPlaybackList
要实现多首歌曲的循环播放列表,核心是用MediaPlaybackList类管理播放队列,它原生支持列表级别的循环、顺序播放等逻辑,比手动监听单首播放完成再切换更可靠。
实现步骤与代码示例
- 创建播放列表并配置循环模式
实例化MediaPlaybackList,设置LoopMode为MediaPlaybackLoopMode.All,让整个播放列表循环播放。 - 添加歌曲到播放列表
为每首歌曲创建MediaSource,并添加到播放列表的Items集合中。 - 关联播放列表到MediaPlayer
将MediaPlayer的Source设置为创建好的播放列表,启动播放即可。
完整代码示例:
// 初始化MediaPlayer mediaPlayer = new MediaPlayer(); // 创建播放列表并设置循环模式(整个列表循环) var playbackList = new MediaPlaybackList(); playbackList.LoopMode = MediaPlaybackLoopMode.All; // 添加4首歌曲到播放列表(替换为你的实际歌曲URI) playbackList.Items.Add(MediaSource.CreateFromUri(new Uri("https://example.com/song1.mp3"))); playbackList.Items.Add(MediaSource.CreateFromUri(new Uri("https://example.com/song2.mp3"))); playbackList.Items.Add(MediaSource.CreateFromUri(new Uri("https://example.com/song3.mp3"))); playbackList.Items.Add(MediaSource.CreateFromUri(new Uri("https://example.com/song4.mp3"))); // 将播放列表设置为MediaPlayer的源 mediaPlayer.Source = playbackList; // 开始播放 mediaPlayer.Play();
关键说明
- MediaPlaybackLoopMode枚举:
None:播放完列表最后一首后停止One:循环播放当前选中的单首歌曲(和你之前的单首循环逻辑一致)All:循环播放整个列表(满足你的需求)
- 额外控制:你还可以通过
playbackList.CurrentItemIndex切换当前播放的歌曲,或监听CurrentItemChanged事件获取播放进度变化。
内容的提问来源于stack exchange,提问作者Sourabh Singh
相关产品推荐
相关产品推荐

