Windows 通用应用程序 - MediaElement 和 M3U

Posted

技术标签:

【中文标题】Windows 通用应用程序 - MediaElement 和 M3U【英文标题】:Windows Universal App - MediaElement and M3U 【发布时间】:2016-07-13 07:40:44 【问题描述】:

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

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

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

亲切的问候 迈克尔

【问题讨论】:

【参考方案1】:

从 Windows 10 版本 1607 开始,建议使用 MediaPlayer 类代替 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

【讨论】:

【参考方案2】:

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

【讨论】:

非常感谢...太简单了,无法考虑解析 m3u 文件本身。使用原始来源,它可以完美运行。【参考方案3】:

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

很遗憾,Windows 10 UWP 应用无法访问 Playlist 类,这对您的方案很有帮助。它仅适用于桌面应用程序和 Windows 8 应用程序。

【讨论】:

非常感谢您的评论。解析文件后现在为我工作

以上是关于Windows 通用应用程序 - MediaElement 和 M3U的主要内容,如果未能解决你的问题,请参考以下文章

带有 system.drawing 和可能的替代方案的 WIndows 通用应用程序

Windows 10 通用应用程序文件/目录访问

Windows 10 通用应用程序文件/目录访问

使用Prism6 建立 Windows 10 通用程序.

通用 Windows 项目 - HttpClient 异常

制作 | UWP :: 使用 Cmake 构建通用 Windows 应用程序