При работе с воспроизведением звука я привык к следующему шаблону:
Это работает нормально, и нет проблем при работе, скажем, с файлом WAV.
Теперь, если исходные данные закодированы в сжатом формате, таком как Vorbis или MP3, для декодирования требуется некоторое время.
И, похоже, довольно часто выполняется декодирование в дисковом / сетевом потоке.
Но разве это не неправильный дизайн? В то время как доступ к диску или сети блокируется, некоторое время ЦП доступно для декодирования, но оно тратится впустую, если декодирование происходит в том же потоке.
Мне кажется, что если сеть становится медленной, то риски опустошения буфера выше, если декодирование происходит последовательно.
Итак, не следует ли выполнять декодирование в аудиопотоке?
В моем контексте я бы предпочел избегать добавления выделенного потока декодирования. Это для мобильных платформ, а SMP сейчас довольно редко. Но скажите, пожалуйста, есть ли смысл в выделенном потоке декодирования для вас.