![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2010
Адрес: Украина, Запорожье
Сообщений: 23
|
Возникла проблема.
Есть mp3 плейер. Запись загружается следующим образом Все нормально проигрывается, но возникла такая ситуация. Записи могут быть больше часа, загрузка такой записи может занимать n-ое время. Мне нужно сдеалть так, чтобы юзер имел возможность начать прослушивать запись с любой позиции без дожидания полной зарузки записи. Т.е. к примеру он указывает, что необходимо начать проигрывать с 50ой минуты и программа начинает подгружать файл с этой позиции. Чтобы было яснее - подобным образом работает плейер на ютубе, если на слайдере кликнуть на середину записи - загрузка начинается именно с этой позиции. Прошу натолкнуть на мысль, куда копать |
|
|||||
|
Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
|
ха, плеер на ютубе получает ПОТОКОВОЕ видео - то есть его отдает спец. видео-сервер, который может "отрезать" нужный кусок с нужной секунды.Надо такой же писать для аудио.
__________________
Я просто добрый шутник. |
|
|||||
|
Регистрация: Jan 2010
Адрес: Украина, Запорожье
Сообщений: 23
|
написал такую простенькую серверную часть.
клиент _sc = new SoundChannel(); _sound = new Sound(); _sound.load(new URLRequest(url + '&postion=12000')); // в position передается нужная позиция в милисекундах. //Также в переменной url предается $_GET['file'], содержит имя файла
Если запустить просто php скрипт, то файл выводится в поток и его можно сохранить на диск, после сохранения получается урезанный файл, который начинается с нужной позиции. Проигрывается нормально Подскажите что не так. Может как-то по другому нужно получать его на клиенте? Или каких-то заголовков не хватает и Flex не может понять что это mp3? Последний раз редактировалось patap; 05.03.2010 в 15:19. |
|
|||||
|
Modus ponens
|
Ну как бы в MP3 есть кадры, их нельзя частями отдавать... нужно вырезать, ну, как минимум от начала кадра а не со случайного места.
И то, как вы позицию в байтах вычислили, это мягко говоря вообще ни о чем... нужно хидер кадра прочитать, посмотреть сколько семплов / какой битрейт, посчитать и уже от туда отдавать.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 05.03.2010 в 15:47. |
|
|||||
|
Регистрация: Jan 2010
Адрес: Украина, Запорожье
Сообщений: 23
|
все-таки файл не правильно отдавался. Вот с этой функцией все нормально, плеер принимает файл и проигрывает его с указанной позиции
в этой строке не ясна логика. Так вот $size - размер текущего файла 167180 - это длина трека в милисекундах (текущего файла) $_GET['position'] - это количество милисекунд, которое необходимо пропустить исходя из этого получаем $seek в байтах, решая простую пропорцию по дибильному но пока другого не придумал, как временное решение пока что покатит. wvxvw на счет того что ты написал, можешь кусочек кода показать. Или хотябы в общих чертах - какие классы за это отвечают, или как вообще это получить. Последний раз редактировалось patap; 05.03.2010 в 16:59. |
![]() |
![]() |
Часовой пояс GMT +4, время: 05:24. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| mp3 , загрузка , позиция , произвольная |
|
|