Windows 通用应用程序 - MediaElement 和 M3U

Windows Universal App - MediaElement and M3U

是否可以在 Windows 10 中的 MediaElement class 中打开 m3u 网络广播流?

样本流将是 http://www.antenne.de/webradio/channels/top-40.m3u

在互联网上打开正常的 mp3 工作完美,但我没有打开任何 m3u 文件。

亲切的问候 迈克尔

不支持 M3U 文件,因为它不是媒体文件。播放列表文件格式简单且有记录well enough,我建议只解析 M3U 文件并播放各个文件。

不幸的是,Windows 10 个 UWP 应用无法访问 Playlist class,这对您的场景很有用。它仅适用于桌面应用程序和 Windows 8 应用程序。

在m3u文件(播放列表文件)中,经常有指向音频来源的链接。您需要获取文件、打开文件、解析文件以获取 URL,并将其中之一提供给 MediaElement。当您尝试流式传输视频时也是如此。

从Windows10版本1607开始,建议使用MediaPlayerclass代替MediaElement 用于媒体播放 & 轻量级 XAML 控件 MediaPlayerElement.

然后您可以使用 MediaPlaybackList 为 MediaPlayer 创建播放列表。

StorageFolder vfolder = Windows.Storage.KnownFolders.VideosLibrary;
StorageFileQueryResult query = vfolder.CreateFileQueryWithOptions(Constants.QueryOptions);
var files = await query.GetFilesAsync();

MediaPlaybackList playbackList = new MediaPlaybackList();

foreach (StorageFile file in files)
        {
            MediaSource source = MediaSource.CreateFromStorageFile(file);
            playbackList.Items.Add(new MediaPlaybackItem(source));
        }

_mediaPlayer = new MediaPlayer();
_mediaPlayer.AutoPlay = true;
_mediaPlayer.Source = playbackList;
MPElement.SetMediaPlayer(_mediaPlayer);
_mediaPlayer.Play();

更多信息Microsoft Docs