xiph.org
rarewares.org
hydrogenaud.io
foobar2000.ru
Форум
Список разделов
Активные темы
Поиск по форуму
Пользователи
Все пользователи
Активные
Неактивные
Поиск пользователей
Кто сейчас на форуме
Наша команда
Информация
Правила форума
FAQ
Помощь по BBCode
Вход
Регистрация
Программное потоковое чтение файла OggVorbis
Список разделов
›
Ogg Vorbis
›
Тех-поддержка
Название раздела:
Тех-поддержка
Описание:
Инструменты, кодеки, сопроводительная информация, алгоритмы, программирование.
Ответить
Имя пользователя:
Заголовок:
Код подтверждения:
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
B
I
U
S
TT
Quote
Spoiler
Code
List
[*]
Img
URL
Маленький
Нормальный
Большой
Огромный
Цвет
audio
video
Цвет:
Ещё смайлики…
Отключить BBCode
Отключить смайлики
Не обрабатывать URL
[quote="Osiris"]Возможно вопрос немного не в общую тематику форума, но пока нигде не нашел ответа. Может здесь найдется человек знающий. Мне необходимо программно прочитать потоково ogg файл, а затем начать проигрывание с начала. Само потокове чтение реализовал так (С++) : [code] PCM = new char[Size]; // читаем while( TotalRet < (long)Size ) { ret = ov_read( &m_OggFile, PCM + TotalRet, (long)Size - TotalRet, 0, 2, 1, ¤t_section); // если конец файла или лимит чтения if( ret <= 0 ) break; TotalRet += ret; } if( TotalRet > 0 ) { alBufferData( BufID, m_iSoundFormat, (void*)PCM, TotalRet, m_iSoundRate ); ALenum Error = 0; if( ( Error = alGetError() ) != AL_NO_ERROR ) { CDX9E3Dlogfile::Get().Report( CDX9E3Dlogfile::ERROR_, "%s%s%s", "Error : COALOggSoundData::ReadBlock : alBufferData : ", alGetString(Error), "\n" ); SAFE_DELETE_ARRAY( PCM ); return false; } } SAFE_DELETE_ARRAY( PCM ); if( ret <= 0 ) ov_pcm_seek( &m_OggFile, 0 );[/code] Файл отлично читается по кусочкам, но когда доходим до конца и при помощи ov_pcm_seek перегоняем (вроде перегоняем) в начало - повтороного чтения не происходит.[/quote]