Возможно ли иметь более 3-х перегрузок на My.Computer.Audio.Play VB.NET - PullRequest
0 голосов
/ 25 августа 2018

Я должен сделать звуковой фон И ждать завершения, вот мой код.

My.Computer.Audio.Play(My.Resources.music, AudioPlayMode.Background, AudioPlayMode.WaitToComplete)

Но это не работает, потому что: «Не удалось разрешить перегрузку, потому что нет доступа» Воспроизвести'принимает это количество аргументов. "

Есть ли способ получить больше аргументов?

1 Ответ

0 голосов
/ 25 августа 2018

Лучшим вариантом может быть написание асинхронного метода, который воспроизводит аудио в фоновом режиме.Таким образом, вы можете ожидать этот метод:

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 означает, чтовыполнение не будет продолжено, пока не завершится код в выполняемом методе, но пользовательский интерфейс также не будет заблокирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...