|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jan 2010
Адрес: Украина, Запорожье
Сообщений: 23
|
Загрузка mp3 из произвольной позиции
Возникла проблема.
Есть 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, время: 14:48. |
|
« Предыдущая тема | Следующая тема » |
Теги |
mp3 , загрузка , позиция , произвольная |
Опции темы | |
Опции просмотра | |
|
|