Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Снова MP3...
 
 автор: Guest11   (14.10.2006 в 15:16)   письмо автору
 
 

Есть файл file.mp3, надо сделать предварительное прослушивание. Я делаю так:
<?php $file file.mp3$file2 file(20kb).mp3$filesize 20000$fp fopen($file"r"); $read fread($fp$filesize); file_put_contents($file2$read); echo "<a href=$file>Скачать</a><br/><a href=$file2>Прослушать(20 kb)</a>"?>
А проблема в том, что мне не хочется хранить эти файлики. Надо после прослушивания удалять файлики $file2. Как это сделать?

   
 
 автор: Саня   (14.10.2006 в 15:31)   письмо автору
 
   для: Guest11   (14.10.2006 в 15:16)
 

Сделайте скипт (назовём его dl.php):
<?php
header
("Content-Type: application/octet-stream");
$file $_GET['mp3'];
$filesize 20000;
$fp fopen($file"r");
echo 
fread($fp$filesize);

А затем давайте ссылки вида http://example.com/dl.php?mp3=Groove_Armada_-_Pre_63.mp3

   
 
 автор: Guest11   (14.10.2006 в 16:02)   письмо автору
 
   для: Саня   (14.10.2006 в 15:31)
 

Большое спасибо! А не будет какой-либо ошибки, если я заменю application/octet-stream на audio/mpeg? Дело в том, что я делаю это для телефонов и лично мой телефон реагирует на application/octet-stream так: "dl.php не поддерживается телефоном", а с audio/mpeg всё нормально.

   
 
 автор: Саня   (14.10.2006 в 16:04)   письмо автору
 
   для: Guest11   (14.10.2006 в 16:02)
 

Ну если на audio/mpeg нормально реагирует, очевидно что ошибки не будет!

   
 
 автор: slonik   (14.10.2006 в 19:58)   письмо автору
 
   для: Саня   (14.10.2006 в 16:04)
 

Почему у меня не работает ни один скрипт. Вообще не режет файлы..а если и режет, то получаются файлы нечитабельные..

   
 
 автор: Yakor   (19.10.2006 в 23:29)   письмо автору
 
   для: slonik   (14.10.2006 в 19:58)
 


<? 
$length 
15// длина в секундах 
$bitrate 192// битрейт файла, из которого вырезается кусок 

$mp3name "Beatnuts - Watch Out Now"// всем качать :)

$fp fopen($mp3name."mp3""r");  // открываем файл
$read fread($fp$length*$bitrate*1000/8); //считаем сколько резать и режем

$seek fopen("15sec_".$mp3name."mp3""w"); // создадим новый файл 15 секунд
fwrite($seek$read); // пишем в файл
fclose($seek); // закрываем файл
?>

   
 
 автор: Саня   (20.10.2006 в 00:07)   письмо автору
 
   для: Yakor   (19.10.2006 в 23:29)
 

Прекрасно режет. Только вы точки забыли поставить в этих местах:
fopen($mp3name.".mp3", "r")
fopen("15sec_".$mp3name.".mp3", "w");

   
 
 автор: Yakor   (20.10.2006 в 00:12)   письмо автору
 
   для: Саня   (20.10.2006 в 00:07)
 

>Прекрасно режет. Только вы точки забыли поставить
дауж.. действительно, надо будет внимательнее быть, а вообще этот вариант ИМХО лучше, т.к. "прослушать первые n-байт" даже звучит хуже чем "прослушать первые n-секунд"... не говоря уж об удобстве :))))))

   
 
 автор: Yakor   (20.10.2006 в 00:18)   письмо автору
 
   для: Саня   (20.10.2006 в 00:07)
 

>Прекрасно режет.
единственное что еще... важную штуку забыл.. вообщем может получиться несколько меньше секунд, чем предпологалось из-за mp3 тэгов (ID3), потому что они идут вначале файла.

   
 
 автор: Саня   (20.10.2006 в 00:25)   письмо автору
 
   для: Yakor   (20.10.2006 в 00:18)
 

При прослушивании этого не заметно. А винамп честно проигрывает 15 секунд. Единственное неудобство - показана полная длина исходного файла, а проигрывается только 15. Вводит в заблуждение.

   
 
 автор: Yakor   (20.10.2006 в 01:55)   письмо автору
 
   для: Саня   (20.10.2006 в 00:25)
 

>При прослушивании этого не заметно. А винамп честно проигрывает 15 секунд.
он может возпроизвести не так честно... если битрейт маленький а теги ID3v1 & ID3v2 будут полностью заполненны

>Единственное неудобство - показана полная длина исходного файла, а проигрывается только 15. Вводит в заблуждение.
странно...

   
 
 автор: Саня   (20.10.2006 в 02:30)   письмо автору
 
   для: Yakor   (20.10.2006 в 01:55)
 

> если битрейт маленький а теги ID3v1 & ID3v2 будут полностью заполненны
В таком случае нужно прочитать все теги (напр. при помощи PEAR::MP3_id), посчитать их размер и прибавить к переменной с размером отрезаемого куска.

   
 
 автор: Guest11   (20.10.2006 в 08:53)   письмо автору
 
   для: Саня   (20.10.2006 в 02:30)
 

Хоть и задавал этот вопрос, но повторюсь. А как всё-таки отрезать кусок файла с удаленного хоста, не скачивая весь файл? И существуют ли какие-либо классы для изменения(уменьшения) битрейта?

   
 
 автор: Саня   (20.10.2006 в 13:15)   письмо автору
 
   для: Guest11   (20.10.2006 в 08:53)
 

Скачать часть файла можно открыв сокет и отправив заголовок range на сервер.
А изменить битрейт на сервере хоть и можно, но это слишком большая нагрузка. Может банально не хватить процессорного времени и скрипт будет блокирован.

   
 
 автор: slonik   (20.10.2006 в 20:36)   письмо автору
 
   для: Саня   (20.10.2006 в 13:15)
 

Короче у меня так и режет по кривому..тёги есть..файл создаётся..но без звука..время звучания 00:00 ... может это дело в настройках? хотя они у меня стандартные денверовские..

   
 
 автор: Саня   (20.10.2006 в 22:23)   письмо автору
 
   для: slonik   (20.10.2006 в 20:36)
 

Каким плеером открываете? Размер обрезанного файла какой?

   
 
 автор: slonik   (20.10.2006 в 23:19)   письмо автору
 
   для: Саня   (20.10.2006 в 22:23)
 

Открываю винампом. Размер файла получается от 2 до 4кб, в зависимости от битрейта и размера исходного файла.

   
 
 автор: Саня   (20.10.2006 в 23:25)   письмо автору
 
   для: slonik   (20.10.2006 в 23:19)
 

Возможно это проблема денвера. А вы не пробовали поставить нормальную связку Apache+PHP? Иил проверить на хостинге (хотя бы бесплатном)?

   
 
 автор: slonik   (20.10.2006 в 23:57)   письмо автору
 
   для: Саня   (20.10.2006 в 23:25)
 

Пока что нет, но проверю.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования