|
|
|
| Есть файл 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. Как это сделать? | |
|
|
|
|
|
|
|
для: 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 | |
|
|
|
|
|
|
|
для: Саня
(14.10.2006 в 15:31)
| | Большое спасибо! А не будет какой-либо ошибки, если я заменю application/octet-stream на audio/mpeg? Дело в том, что я делаю это для телефонов и лично мой телефон реагирует на application/octet-stream так: "dl.php не поддерживается телефоном", а с audio/mpeg всё нормально. | |
|
|
|
|
|
|
|
для: Guest11
(14.10.2006 в 16:02)
| | Ну если на audio/mpeg нормально реагирует, очевидно что ошибки не будет! | |
|
|
|
|
|
|
|
для: Саня
(14.10.2006 в 16:04)
| | Почему у меня не работает ни один скрипт. Вообще не режет файлы..а если и режет, то получаются файлы нечитабельные.. | |
|
|
|
|
|
|
|
для: 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); // закрываем файл
?>
|
| |
|
|
|
|
|
|
|
для: Yakor
(19.10.2006 в 23:29)
| | Прекрасно режет. Только вы точки забыли поставить в этих местах:
fopen($mp3name.".mp3", "r")
fopen("15sec_".$mp3name.".mp3", "w"); | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 00:07)
| | >Прекрасно режет. Только вы точки забыли поставить
дауж.. действительно, надо будет внимательнее быть, а вообще этот вариант ИМХО лучше, т.к. "прослушать первые n-байт" даже звучит хуже чем "прослушать первые n-секунд"... не говоря уж об удобстве :)))))) | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 00:07)
| | >Прекрасно режет.
единственное что еще... важную штуку забыл.. вообщем может получиться несколько меньше секунд, чем предпологалось из-за mp3 тэгов (ID3), потому что они идут вначале файла. | |
|
|
|
|
|
|
|
для: Yakor
(20.10.2006 в 00:18)
| | При прослушивании этого не заметно. А винамп честно проигрывает 15 секунд. Единственное неудобство - показана полная длина исходного файла, а проигрывается только 15. Вводит в заблуждение. | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 00:25)
| | >При прослушивании этого не заметно. А винамп честно проигрывает 15 секунд.
он может возпроизвести не так честно... если битрейт маленький а теги ID3v1 & ID3v2 будут полностью заполненны
>Единственное неудобство - показана полная длина исходного файла, а проигрывается только 15. Вводит в заблуждение.
странно... | |
|
|
|
|
|
|
|
для: Yakor
(20.10.2006 в 01:55)
| | > если битрейт маленький а теги ID3v1 & ID3v2 будут полностью заполненны
В таком случае нужно прочитать все теги (напр. при помощи PEAR::MP3_id), посчитать их размер и прибавить к переменной с размером отрезаемого куска. | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 02:30)
| | Хоть и задавал этот вопрос, но повторюсь. А как всё-таки отрезать кусок файла с удаленного хоста, не скачивая весь файл? И существуют ли какие-либо классы для изменения(уменьшения) битрейта? | |
|
|
|
|
|
|
|
для: Guest11
(20.10.2006 в 08:53)
| | Скачать часть файла можно открыв сокет и отправив заголовок range на сервер.
А изменить битрейт на сервере хоть и можно, но это слишком большая нагрузка. Может банально не хватить процессорного времени и скрипт будет блокирован. | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 13:15)
| | Короче у меня так и режет по кривому..тёги есть..файл создаётся..но без звука..время звучания 00:00 ... может это дело в настройках? хотя они у меня стандартные денверовские.. | |
|
|
|
|
|
|
|
для: slonik
(20.10.2006 в 20:36)
| | Каким плеером открываете? Размер обрезанного файла какой? | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 22:23)
| | Открываю винампом. Размер файла получается от 2 до 4кб, в зависимости от битрейта и размера исходного файла. | |
|
|
|
|
|
|
|
для: slonik
(20.10.2006 в 23:19)
| | Возможно это проблема денвера. А вы не пробовали поставить нормальную связку Apache+PHP? Иил проверить на хостинге (хотя бы бесплатном)? | |
|
|
|
|
|
|
|
для: Саня
(20.10.2006 в 23:25)
| | Пока что нет, но проверю. | |
|
|
|