Всем привет.
Я разработал класс для асинхронного воспроизведения MP3 файлов в памяти. Например это может пригодится для воспроизведения фоновой музыки из ресурсов или из сети минуя запись в файл. Воспроизводить можно несколько файлов одновременно, но некоторые параметры воспроизведения (громкость, панорама) для всех проигрывателей будут общими. Класс разработан так, что корректно обрабатывает ситуации остановки среды кнопками "стоп", "пауза" и выхода по End. По тегам, корректно обрабатываются только ID3v1 и ID3v2 теги, другие не распознаются и файл скорее всего не будет играться.
Методы:
- Initialize - инициализирует проигрыватель, в качестве первого параметра передается указатель на данные MP3 файла. Второй параметр указывает на размер данных. Третий параметр определяет нужно ли копировать файл во внутренний буфер внутри объекта и воспроизводить файл оттуда;
- Play - запускает воспроизведение, параметр looped при первом воспроизведении определяет будет ли файл зацикливаться;
- Pause - приостанавливает воспроизведение, следующее воспроизведение начнется с текущей позиции;
- StopPlaying - останавливает воспроизведение;
- SetPositionMs - устанавливает текущую позицию воспроизведения (мс);
- GetPositionMs - возвращает текущую позицию воспроизведения (мс);
- GetBitrate - возвращает битрейт на момент воспроизведения (кб/с);
- IsPlaying - определяет играется ли файл;
Свойства:
- Volume - задает/возвращает текущую громкость воспроизведения (0...1);
- Pan - задает/возвращает текущую панораму воспроизведения ((левый канал)-1...1(правый канал)).
Вот это очень в тему. Теперь я буду этим музыку воспроизводить, а не через DirectShow.
Не понял, декодирование где?
Не понял, декодирование где?
Декодирование выполняет Windows.
Тема в архиве.