Запись звука PCM в Silverlight 4

Я столкнулся со странным поведением в приложении Silverlight и не смог решить его после многочасовой попытки.

  • Поскольку я не могу получить доступ AudioFormatвнутренний конструктор в моем коде (даже использование отражения заставило политики безопасности silverlight вызвать исключение), Как я могу изменить аудиоформат (в моем классе, который получен из AudioSink учебный класс. Прямо сейчас я переопределяю метод в моем MemoryAudioSink Класс следующим образом:

    protected override void OnFormatChange(AudioFormat audioFormat)
    {
        if (this.audioFormat == null)
        {
            this.audioFormat = audioFormat;
        }
        else
        {
            throw new InvalidOperationException();
        }
    }  
    

    Я не могу создать новый AudioFormat (отсутствует ctor), и AudioFomat по умолчанию имеет 16000 выборок в секунду, в которых нет установщика. Я хотел бы записывать и сохранять аудио в формате Mono (Channels = 1), 8 бит (Bits Per Sample = 8), 8k (Samples Per Second = 8000).

Кроме того, я использовал Cool Edit для успешной записи 8-битного звука 8k, чтобы убедиться, что моя звуковая карта поддерживает его.

Проще говоря, могу ли я записывать звук с помощью своего пользовательского AudioFormat или мне нужно записать звук в Silverlight, передать его в мой WebApp и преобразовать в свой пользовательский формат, используя стороннюю библиотеку (о которой я ничего не знаю)?

1 ответ

Эта ссылка может вам помочь: аудиозапись Silverlight 4 и загрузка на сервер Sry за мою глупость. Я не знаю, как форматировать код, в той ссылке, которую я вам дал, ищите строку AudioFormat wantedAudioFormat = null; иди туда, тебе нужен следующий foreach

Другие вопросы по тегам