que tiene una situación muy similar a la persona que le preguntó: Can I serve MP3 files with PHP? Básicamente estoy tratando de proteger los archivos mp3 de descarga directa, por lo que los usuarios tienen que ir a través de PHP para obtener autenticado primero. Aquí está mi código:PHP Streaming MP3
header('Content-type: audio/mpeg');
header('Content-length: ' . filesize($file));
header('X-Pad: avoid browser bug');
Header('Cache-Control: no-cache');
header("Content-Transfer-Encoding: binary");
header("Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3");
readfile($file);
Aquí es mi problema: El archivo sólo juega un pequeño trozo del principio (a través de Quicktime en el navegador) y luego se detiene - Quicktime parece pensar que la longitud del archivo sólo siempre y cuando el trozo se las arregló para descargar. Cuando vuelvo a cargar, reproduce un fragmento un poco más grande, lo que sea que haya logrado descargar hasta ese momento.
¿Hay algún problema en los encabezados que estoy enviando? ¿Cómo podría transmitir ese archivo? ¿Es un problema si un swf está leyendo de ese archivo?
Gracias!
Gracias a todos por todas las respuestas. Aunque ninguna de estas cosas fue exactamente lo que resolvió el problema, muchas de ellas me enviaron en la dirección correcta. Muy apreciado. Para la solución completa ver mi respuesta a continuación
Supongo que no tiene ese error tipográfico ("Encabezado") en su código real? Además, no necesitas el hack X-Pad. Esto solo es necesario para el antiguo Netscape (ver http://george.hotelling.net/90percent/geekery/why_is_apache_sending_a_xpad_header.php). No necesita Content-Transfer-Encoding, y solo debe especificar Content-Type una vez (audio/mpeg está bien). –
@Matthew Flaschen: las funciones de PHP no distinguen entre mayúsculas y minúsculas, por lo que solo se trata de un problema de coherencia. El tipo de contenido puede ser el verdadero problema aquí. – Piskvor