vb.net - 是否可以在 My.Computer.Audio.Play VB.NET 上有超过 3 个重载
问题描述
我必须做一个音频背景并等待完成我的代码。
My.Computer.Audio.Play(My.Resources.music, AudioPlayMode.Background, AudioPlayMode.WaitToComplete)
但它不起作用,因为:“重载解析失败,因为没有可访问的‘播放’接受这个数量的参数。”
有什么办法可以得到更多的论据?
解决方案
您最好的选择可能是编写一个在后台播放音频的异步方法。这样,您可以等待该方法:
Private Async Function PlayInBackgroundAsync(data As Stream) As Task
Await Task.Run(Sub() My.Computer.Audio.Play(data, AudioPlayMode.Background)).ConfigureAwait(False)
End Function
请注意,您等待方法调用的任何方法都必须声明Async
,例如
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Await PlayInBackgroundAsync(My.Resources.music)
End Sub
使用 await 意味着在正在执行的方法中的代码完成之前不会继续执行,但 UI 也不会被阻塞。
推荐阅读
- python - 如何最有效地读取python中具有复数的txt文件?
- shell - 如何判断终端是否为windows终端
- ios - Azure 空间锚创建观察程序导致断言错误
- angularjs - 如何在表单上使用自定义 ng-pattern 函数
- html - 如何在 typescript vue js 项目中将 html 文件作为模板导入为模块,以便在多个组件中使用相同的 html 文件?
- google-cloud-platform - Google Cloud IoT 控制台日志中出现许多“MQTT disconnect - ALREADY_EXISTS”错误
- amazon-web-services - CloudFormation 是否公开 Redis ElastiCache 复制组的 Reader Endpoint?
- android - 通过单击按钮创建 android 通知
- c# - Microsoft.Net.Http.Headers 3.0.0 不存在,但在升级到 .net core 3.0 时需要
- php - 如何使用 Facebook Marketing API 检索 Ads Action Stats 数据