Ошибка генерации звукового сопровождения при повторном воспроизведении - PullRequest
0 голосов
/ 12 сентября 2011

Первый раз, когда я нажимаю кнопку PLAY, все работает нормально, но в следующий раз выдает ошибку в этой строке:

    waveOutDevice.Init(mainOutputStream);

Пожалуйста, смотрите скриншот для получения подробной информации об ошибке.Ниже приведен раздел моего кода:

    private void Play()
    {
        string audioFile = "temp.mp3";
        try
        {
            if (mainOutputStream != null)
                mainOutputStream = null;
            mainOutputStream = CreateInputStream(audioFile);
        }
        catch (Exception exc)
        {
            MessageBox.Show(exc.Message);
        }
        if (mainOutputStream != null)
        {
            waveOutDevice.Init(mainOutputStream);
            waveOutDevice.Play();
        }
        else
        {
            return;
        }

    }

Код ошибки: -2004287486

TargetSite: {Void ThrowExceptionForHRInternal (Int32, IntPtr)}

Все это происходит у меня над головой, поэтому, пожалуйста, помогите мне указать место ошибки и немного пояснений (если это возможно) и, конечно, обойти эту ситуацию.Спасибо.

Error Screenshot


ОБНОВЛЕНИЕ:

Спасибо за ответ.Это тоже пробовал, но все та же проблема.Файл воспроизводится снова, но это сообщение об ошибке продолжает появляться после некоторой задержки.Иногда сообщение об ошибке появляется через несколько секунд после закрытия всего приложения.И это появляется много раз, один за другим, вероятно, один раз за каждый раз, когда файл воспроизводился.

1 Ответ

0 голосов
/ 15 сентября 2011

Код ошибки: 0x88890002 ( AUDCLNT_E_ALREADY_INITIALIZED ), что указывает на неправильное размещение старого устройства вывода.Убедитесь, что вы избавились от waveOutDevice и создали новый для следующего воспроизведения.

...