Windows
Microsoft 操作系统系列,可跨个人计算机、平板电脑、笔记本电脑、手机、物联网设备、独立混合现实头戴显示设备、大型协作屏幕和其他设备运行。
556 个问题
maui media element,在上一曲播放完后,触发mediaended事件后,再次给source添加新的值时,会直接报错
详细代码在如下链接
https://github.com/fsdfsfd/SimpleAudioPlayer
当您添加歌曲时,您的 SongName 将为空,您将得到空异常,我从 Sony_path 获取歌曲名称并按照以下代码进行设置。
public void AddSong(string Song_path)
{
Song song = new Song();
song.InitInstanceByTagLib(Song_path);
int index = Song_path.LastIndexOf('\\');
if (index >= 0)
{
song.SongName = Song_path.Substring(index + 1);
}
SongList.Add(song.SongName,song);
PlayList.Add(song.SongName);
}
然后,您添加了一个Action,并在更改歌曲时用“try/catch”包装它,您的应用程序可以正常运行,并且这个异常也消失了。
try
{
// 使用闭包捕获参数
Action updateAction = () => UpdateMediaElementSource(path, songname);
// 使用 Dispatcher 延迟设置 Source 属性
Dispatcher.Dispatch(updateAction);
}
catch (COMException comEx)
{
// 处理 COMException
Console.WriteLine($"COMException caught: {comEx.Message}");
}
catch (Exception ex)
{
// 处理其他异常
Console.WriteLine($"Exception caught: {ex.Message}");
}