c# - MediaElement.SetSource() 自动播放我的 MP3
问题描述
我目前正在使用 UWP 在 C# 中开发一个项目。我需要播放 MP3 文件,但不是立即播放,但如果我单击应用程序中的按钮。所以我创建了一个按钮“加载 MP3”,它运行以下方法: 加载 MP3 方法
private async void open_MP3_Click(object sender, RoutedEventArgs e)
{
mp3.AudioCategory = Windows.UI.Xaml.Media.AudioCategory.Media;
var picker = new Windows.Storage.Pickers.FileOpenPicker();
picker.ViewMode = Windows.Storage.Pickers.PickerViewMode.List;
picker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.ComputerFolder;
picker.FileTypeFilter.Add(".mp3");
StorageFile sf = await picker.PickSingleFileAsync();
var stream = await sf.OpenAsync(FileAccessMode.Read);
mp3.SetSource(stream, sf.ContentType);
//await Task.Delay(3500);
//mp3.Pause();
}
如果我运行此代码,我选择的歌曲将立即播放,而无需单击我创建的播放按钮。如果我在该行设置断点,mp3.SetSource()
则代码不会立即播放歌曲。我试图解决该mp3.Pause()
方法的问题,但必须插入 350 毫秒的延迟才能完全正常工作。如果我选择延迟很长(比如这里的 3500 毫秒),歌曲开始播放并在 3.5 秒后停止,显然。
因为我必须将歌曲的开始时间精确到毫秒才能让我的项目工作,所以延迟方法对我来说并不理想。有谁知道该SetSource()
方法有什么问题?
解决方案
该MediaElement
控件有一个默认AutoPlay
设置为的属性(请参阅文档)。这意味着无论何时设置源,它都会在源加载后立即自动开始播放。为避免这种情况,只需将属性设置为 false:true
AutoPlay
mp3.AutoPlay = false;
推荐阅读
- php - 图像保存为 tmp 文件
- wordpress - 如何修复 WordPress 中的这些 404 错误?
- android - 在 cordova/phonegap Android 应用程序上关闭屏幕后媒体停止播放
- python - 正则表达式向后匹配任何内容,直到第一次出现字符串
- javascript - 每 X 秒获取一次计数,加载超过 10 亿个 XHR 请求
- java - 如何在 Angular 5 中未经授权使用主页中的实体数据
- r - R中的DCC GARCH:观察次数
- python-3.x - (算法)在 Python 中找到穿过所需节点集(可能使用 BFS)并返回原点的最短路径
- r - 循环将年份分为两部分
- c# - 用户启动的多个线程。仅使用最后一个结果