Buenas!
Este es el primer post que publico sobre programación y sistemas desarrollados con un buen funcionamiento =) y como ahorita esta de moda eso de los videos y musica pues aquí te explicare como puedes desarrollar tu propia página web con sistema de reproducción de videos y lo mejor de todo es que también funciona con musica mp3 asi que hasta puedes crear tu propio ITunes en linea =) exelente no? bueno empezamos.
Este sistemita lo cree hace como un año y ya tenia ganas de compartirlo pero no sabia donde hasta que se me ocurrio este blog 
Bueno pues en ese entonces yo progamaba en ASP y pues el sistema por lo tanto esta desarrollado con ese lenguaje... pero si alguien le interesa tenerlo en PHP que me diga y pues intentare traducirlo y publicarlo
1. Creamos un index.asp donde tendremos el sistema de busqueda de videos y mp3 y ahi el ususario seleccionará cual video o canción desea reproducir. Al darle clic al titulo o imagen, te mandara a otra página [video.asp] donde tendremos el reproductor (que por cierto es de Flash) y ahí en el mismo reproductor podremos reproducir la canción o video seleccionado.
2. En el index.asp tendremos lo siguiente:
-
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<title>Your Video</title>
-
<style type="text/css">
-
<!--
-
body,td,th {
-
font-family: Arial, Helvetica, sans-serif;
-
color: #990033;
-
}
-
body {
-
background-color:#FBFBFB;
-
margin-left: 15px;
-
margin-right: 15px;
-
}
-
a:link {
-
color: #990033;
-
}
-
a:visited {
-
color: #CC0000;
-
}
-
.style2 {
-
color: #990000;
-
font-weight: bold;
-
}
-
-->
-
</style>
-
</head>
-
-
<script type="text/javascript">
-
<!--
-
function vacio(v) {
-
for (i=0; i<v.length; i++)
-
{
-
if (v.charAt(i)!=" ")
-
{ return true }
-
}
-
alert("Introduce una busqueda correcta");
-
document.busqueda.video.value="";
-
document.busqueda.video.focus();
-
return false
-
}
-
//-->
-
</script>
-
-
<!-- #include file="conexion.asp" -->
-
<img src="cabeza.jpg" width="608" height="160" />
-
</td></tr></table>
-
</td></tr>
-
<td width="88%"></td>
-
<td align="center" valign="middle" width="6%">
-
</td>
-
<td align="center" valign="middle" width="6%">
-
</td>
-
</tr></table>
-
<form action="index.asp" method="post" name="busqueda" id="busqueda" onsubmit="return vacio(document.busqueda.video.value)">
-
<input type="radio" name="tipo" value="FLV" />
-
<font color="#990033" size="2" face="Arial, Helvetica, sans-serif">Video</font>
-
</td></tr>
-
<input type="radio" name="tipo" value="MP3" />
-
<font color="#990033" size="2" face="Arial, Helvetica, sans-serif">Audio</font>
-
</td></tr>
-
<input type="text" name="video" />
-
-
<script type="text/JavaScript">
-
<!--
-
document.busqueda.video.focus();
-
//-->
-
</script>
-
-
<input type="submit" name="buscar" value="Buscar" />
-
</td></tr></table>
-
</form>
-
</fieldset>
-
-
<%
-
if (request.form("buscar")="Buscar") then
-
vid=trim(request.form("video"))
-
tipo=request.form("tipo")
-
a=0
-
ban=0
-
Dim palabras(99999)
-
i=-1
-
-
while (a<len(vid)) 'buscamos las palabras en la BD
-
i=i+1
-
ban1=0
-
video=""
-
while ((ban1=0) and (a<len(vid)))'sakamos palabra por palabra
-
a=a+1
-
if (mid(vid,a,1)<>" ") then 'si es una letra (sin espacios) entonces
-
video=video & mid(vid,a,1)
-
ban1=0
-
else
-
if video="" then
-
ban1=0
-
else
-
ban1=1
-
end if
-
end if
-
wend
-
video=replace(video,"'","\t8t\")
-
video=replace(video,"%","\p8p\")
-
palabras(i)=video
-
wend
-
-
'hacemos consulta a la BD
-
if tipo="" then
-
strSQL = "SELECT * FROM videos WHERE video LIKE '%" & palabras(0) & "%'"
-
else
-
if tipo="FLV" then
-
strSQL = "SELECT * FROM videos WHERE tipo='FLV' AND video LIKE '%" & palabras(0) & "%'"
-
else
-
if tipo="MP3" then
-
strSQL = "SELECT * FROM videos WHERE tipo='MP3' AND video LIKE '%" & palabras(0) & "%'"
-
end if
-
end if
-
end if
-
-
for j=1 to i
-
strSQL = strSQL & " AND video LIKE '%" & palabras(j) & "%'"
-
next
-
strSQL = strSQL & " ORDER BY video"
-
Set objRS = conn.Execute(strSQL)
-
Set contador = conn.Execute(strSQL) 'cuento el total de resultados
-
-
'Ciclo para contar recultados
-
if (not contador.Eof) then
-
while not contador.Eof
-
cr=cr+1
-
contador.movenext
-
wend
-
else
-
cr=0
-
end if
-
-
if (not objRS.Eof) then 'si hay algun resultado
-
%>
-
<br><br>
-
<table border="0" width="100%"><tr height="15" align="right"><td align="right" valign="middle"><font size="2" face="Arial, Helvetica, sans-serif">
-
<%
-
if tipo="" then
-
response.write("Se encontraron " & cr & " resultados para <b>'" & vid & "'")
-
else
-
if tipo="FLV" then
-
response.write("Se encontraron " & cr & " resultados de video para <b>'" & vid & "'")
-
else
-
if tipo="MP3" then
-
response.write("Se encontraron " & cr & " resultados de audio para <b>'" & vid & "'")
-
end if
-
end if
-
end if
-
%>
-
</b></font></td></tr></table>
-
<hr color="#990000" width="100%" align="right" size="2"/>
-
<%
-
while not objRS.Eof 'Mientras no llegue al final de la tabla
-
%>
-
<table width="581" border="0">
-
<tr>
-
<td width="101" height="103"><% response.write("<a href='video.asp?tipo=" & objRS("tipo") & "&video=" & objRS("link") & "'><img border='0' src='video" & objRS("tipo") & ".jpg'/>")%></a></td>
-
<td width="470">
-
<table width="475" border="0">
-
<tr>
-
<td width=100% height="20" bgcolor="#E8E8E8" align="left" valign="middle"><span class="style2"><font size="2" face="Arial, Helvetica, sans-serif"><% response.write("<a href='video.asp?tipo=" & objRS("tipo") & "&video=" & objRS("link") & "'>" & objRS("video")) %></font></span></a></td>
-
</tr>
-
<tr>
-
<td width=100% height="95" align="left" valign="middle"><font color="#990033" size="2" face="Arial, Helvetica, sans-serif">
-
<% response.write(objRS("descripcion")) %></font></td>
-
</tr>
-
</table>
-
</td>
-
</tr>
-
<tr height="4">
-
<td height="11"> </td>
-
</tr>
-
</table>
-
-
-
<%
-
objRS.movenext
-
wend 'cierro ciclo de impresion de resultados
-
else 'sino encontro resultados
-
%>
-
<br>
-
<br>
-
<table border="0" width="100%"><tr height="15" align="right"><td align="right" valign="middle"><font size="2" face="Arial, Helvetica, sans-serif">
-
<%
-
if tipo="" then
-
response.write("Se encontraron " & cr & " resultados para <b>'" & vid & "'")
-
else
-
if tipo="FLV" then
-
response.write("Se encontraron " & cr & " resultados de video para <b>'" & vid & "'")
-
else
-
if tipo="MP3" then
-
response.write("Se encontraron " & cr & " resultados de audio para <b>'" & vid & "'")
-
end if
-
end if
-
end if
-
%>
-
</b></font></td></tr></table>
-
<hr color="#990000" width="100%" align="right" size="2"/>
-
<p>
-
<%
-
end if
-
conn.Close
-
set objRS = nothing
-
set conn = nothing
-
end if
-
%>
-
</p>
-
<table border="0" width="100%"><tr height="15" align="right"><td align="rigth" valign="middle">
-
<img src="pie.jpg" height="191" />
-
</td>
-
</tr></table>
-
-
</td></tr></table>
-
</td></tr></table>
-
</body>
-
</html>
No te asustes! lo explicaré paso a paso:
Como podras ver tengo un codigo JavaScript el cual utilizo para la validacion del cuadro de busqueda; para evitar que el usuario intente buscar "nada".. es decir que si introduce puros espacios en blanco, nuestro codigo Javascript le indicara al usuario que debe introducir una busqueda correcta
-
function vacio(v) {
-
for (i=0; i<v.length; i++)
-
{
-
if (v.charAt(i)!=" ")
-
{ return true }
-
}
-
alert("Introduce una busqueda correcta");
-
document.busqueda.video.value="";
-
document.busqueda.video.focus();
-
return false
-
}
Contiuando con nuestro codigo de index.asp veremos que estamos incluyendo un archivo [conexion.asp] el cual contiene lo siguiente:
-
set conn = Server.Createobject("adodb.connection")
-
conn.open ("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("bd\bd1.mdb"))
Esto porque necesitaremos una base de datos donde unicamente guardaremos la referencia de donde tenemos los videos y canciones almacenados; es decir: Nostros guardaremos todos los archivos [video.flv y cancion.mp3] en dos distintas carpetas llamadas "videos" y "mp3" y en la Base de Datos llamada "bd1.mdb" que estara dentro de la carpeta "BD" tendremos unicamente una tabla llamada "videos" con lo siguiente

Como podras observar tenemos 5 campos:
id: es nuestro campo unico que nos sirve para tener control de los registros (es muy util cuando deseamos obetener solo el primer registro o el ultimo)
video: contiene el nombre del video o la cancion
link: contiene la direccion donde esta almacenada esa cancion.
descripcion: es una descripcion de la cancion o video
tipo: este campo nos indica si ese archivo es video [FLV] o cancion [MP3]
Otra cosa importante a resaltar es de que en la tabla (especificamente en el campo de "video") estoy utilizando un conteo creciente (por ejemplo: v6.flv, v7.flv...) esto lo hago debido a que de esa manera es mas facil su utilizacion.
Sigamos con index.asp
Pues para entender el HTML ya debes saber lo basico del html.. de no ser asi, aquí te dejo un Link hacia un tutorial de HTML muy bueno... ya que lo leas, entonces prosigues con el index.asp
Como podras ver en aproximadamente en la linea 64 tenemos un link hacia un archivo "subir.asp" el cual será nuestra página donde el usuario podrá subir sus propios videos... este archivo lo explicare mas adelante..
Despues tenemos un Fielset que es donde he colocado el cuadro de busqueda de los videos o canciones...
Dentro de este fieldset tenemos un Form el cual al ser enviado nos regresara denuevo al index.asp... ya veras porque..
Este codigo javascript es unicamente para que al iniciar nuestra página, nuestro cuadro de texto de busqueda tenga el foco
-
document.busqueda.video.focus();
Enseguida tenemos un codigo ASP
-
if (request.form("buscar")="Buscar") then
-
vid=trim(request.form("video"))
-
tipo=request.form("tipo")
-
a=0
-
ban=0
-
Dim palabras(99999)
-
i=-1
-
-
while (a<len(vid)) 'buscamos las palabras en la BD
-
i=i+1
-
ban1=0
-
video=""
-
while ((ban1=0) and (a<len(vid)))'sakamos palabra por palabra
-
a=a+1
-
if (mid(vid,a,1)<>" ") then 'si es una letra (sin espacios) entonces
-
video=video & mid(vid,a,1)
-
ban1=0
-
else
-
if video="" then
-
ban1=0
-
else
-
ban1=1
-
end if
-
end if
-
wend
-
video=replace(video,"'","\t8t\")
-
video=replace(video,"%","\p8p\")
-
palabras(i)=video
-
wend
-
-
'hacemos consulta a la BD
-
if tipo="" then
-
strSQL = "SELECT * FROM videos WHERE video LIKE '%" & palabras(0) & "%'"
-
else
-
if tipo="FLV" then
-
strSQL = "SELECT * FROM videos WHERE tipo='FLV' AND video LIKE '%" & palabras(0) & "%'"
-
else
-
if tipo="MP3" then
-
strSQL = "SELECT * FROM videos WHERE tipo='MP3' AND video LIKE '%" & palabras(0) & "%'"
-
end if
-
end if
-
end if
-
-
for j=1 to i
-
strSQL = strSQL & " AND video LIKE '%" & palabras(j) & "%'"
-
next
-
strSQL = strSQL & " ORDER BY video"
-
Set objRS = conn.Execute(strSQL)
-
Set contador = conn.Execute(strSQL) 'cuento el total de resultados
-
-
'Ciclo para contar recultados
-
if (not contador.Eof) then
-
while not contador.Eof
-
cr=cr+1
-
contador.movenext
-
wend
-
else
-
cr=0
-
end if
-
-
if (not objRS.Eof) then 'si hay algun resultado
-
'imprimimos los resultados en una lista [ver index.php linea 155]
Como podemos ver, este pedazo de codigo lo unico que hace es recibir la cadena a buscar, la divide en palabras y lo guarda en un array llamado "palabras" y despues crea una consulta que obtenga los registros que contengan esas palabras, despues ejecuta la sentencia SQL y obtiene los resultados, tambien hay un ciclo que solo se utiliza para contar el total de registros obtenenido
Despues tenemos codigo insertado en el html, en la lista de resultados... lo que hacemos es que por cada video o cancion que cumpla con la sentencia SQL imprimiremos su titulo, descripcion y una imagen indicando que es video o cancion.. cada una de estas cosas con un link hacia video.asp enviando por el metodo GET, el tipo de archivo que es [FLV o MP3] y el nombre del video.. lo vemos a continuacion
-
<table width="581" border="0">
-
<td width="101" height="103"><% response.write("<a href='video.asp?tipo=" & objRS("tipo") & "&video=" & objRS("link") & "'><img border='0' src='video" & objRS("tipo") & ".jpg'/>")%></a></td>
-
<td width="470">
-
<table width="475" border="0">
-
<tr>
-
<td width=100% height="20" bgcolor="#E8E8E8" align="left" valign="middle"><span class="style2"><font size="2" face="Arial, Helvetica, sans-serif"><% response.write("<a href='video.asp?tipo=" & objRS("tipo") & "&video=" & objRS("link") & "'>" & objRS("video")) %></font></span></a></td>
-
</tr>
-
<tr>
-
<td width=100% height="95" align="left" valign="middle"><font color="#990033" size="2" face="Arial, Helvetica, sans-serif">
-
<% response.write(objRS("descripcion")) %></font></td>
-
</tr>
-
</table>
-
</td>
-
</tr>
-
<tr height="4">
-
<td height="11"> </td>
-
</tr>
-
</table>
Este codigo esta dentro del ciclo que recorre registro resultante por registro resultante... es decir que si se encontraron 10 videos que coincidan con las palabras "futbol" y "barcelona" entonces este codigo se imprimira 10 veces...
Despues de esto tenemos el fin del ciclo y el else de la pregunta inicial (if (not objRS.Eof))
-
objRS.movenext
-
wend 'cierro ciclo de impresion de resultados
-
else 'sino encontro resultados
Si no encontro resultados entonces imprimimos mensaje de "0 resultados que coincidan con su busqueda"
-
<%
-
if tipo="" then
-
response.write("Se encontraron " & cr & " resultados para <b>'" & vid & "'")
-
else
-
if tipo="FLV" then
-
response.write("Se encontraron " & cr & " resultados de video para <b>'" & vid & "'")
-
else
-
if tipo="MP3" then
-
response.write("Se encontraron " & cr & " resultados de audio para <b>'" & vid & "'")
-
end if
-
end if
-
end if
-
%>
-
</b></font></td></tr></table>
-
<hr color="#990000" width="100%" align="right" size="2"/>
Despues unicamente cerramos la conexion a la base de datos
-
end if 'final de (if (not objRS.Eof) then)
-
conn.Close
-
set objRS = nothing
-
set conn = nothing
-
end if 'final de (if (request.form("buscar")="Buscar") then )
Despues de eso ya nomas imprimimos lo que resta de html...
Asi concluye nuestro index.asp
En resumen para index.asp
Lo que hacemos es mostrar un formulario con un cuadro de texto para escribir la busqueda y dos radiobuttons para seleccionar si lo que se esta buscando es musica, video o ambos.
Si se envia el formulario, se recibe en el mismo archivo index.asp, la cadena a buscar... esta busqueda se divide en palabras y despues se crea la sentencia SQL para obtener solo los archivos que cumplan con las palabras buscadas... si se encuentran resultados, se imprime la lista de resultados (imagen indicando el tipo de archivo [video o mp3], el titulo y la descripcion y su respectivo link hacia video.asp)...
sino se encontraron resultados entonces te imprime mensaje de error...
Ahora vamos con video.asp
este es el contenido de video.asp; no te asustes, lo explicare paso a paso
-
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-
<title>Your Video - Player in streaming</title>
-
<style type="text/css">
-
<!--
-
body,td,th {
-
font-family: Arial, Helvetica, sans-serif;
-
color: #990033;
-
}
-
body {
-
background-color:#FBFBFB;
-
margin-left: 15px;
-
margin-right: 15px;
-
}
-
a:link {
-
color: #990033;
-
}
-
a:visited {
-
color: #CC0000;
-
}
-
.style2 {
-
color: #990000;
-
font-weight: bold;
-
}
-
-->
-
</style>
-
-
<%
-
dim vidd, tipo
-
vidd="http://programacion/servicio%20progra/angel/youvideo/" & request.QueryString("video")
-
tipo=request.QueryString("tipo")
-
%>
-
-
<SCRIPT LANGUAGE=JavaScript>
-
<!--
-
function javatoflash(){
-
window.document.video.SetVariable("myvar", "<%=vidd%>");
-
window.document.video.SetVariable("myvar2", "<%=tipo%>");
-
}
-
//-->
-
</SCRIPT>
-
-
<style type="text/css">
-
<!--
-
body {
-
background-color: #FBFBFB;
-
}
-
-->
-
</style></head>
-
-
<img src="cabeza.jpg" width="608" height="160" />
-
</td></tr></table>
-
</td></tr>
-
-
</td></tr>
-
-
<br />
-
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="video" align="middle">
-
<param name="allowScriptAccess" value="sameDomain" />
-
<param name="movie" value="video.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed swLiveConnect="true" src="video.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="video" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
-
</object><br />
-
</td></tr></table>
-
</td></tr>
-
<img src="pie.jpg" height="191" />
-
</td>
-
</tr></table>
-
</td></tr></table>
-
<SCRIPT LANGUAGE=JavaScript>
-
<!--
-
javatoflash();
-
//-->
-
</SCRIPT>
-
-
</body>
-
</html>
Primero explicare en teoria como funciona la reproduccion:
Adobe Flash es un programa con el cual se pueden desarrollar inumerables aplicaciones para escritorio y para web... una de sus tantas aplicaciones es el reproductor multimedia que tiene (el cual utiliza youtube, metacafe, tu.tv, y muchas mas paginas de videos) y es el cual utilizaremos nosotros.. El video en todas las paginas funciona similarmente, pero el diseño puede cambiar... nosotros usaremos un reproductor como este

Para trabajar con el reproductor de Adobe Flash es necesario incluirlo en nuesto archivo html [video.asp] como objeto embebido... y para indicarle que video tiene que reproducir usaremos javascript... este es un metodo no muy usado por los demas sistemas de reproduccion, pero funciona igual que los demas y lo obtube directamente de un tutorial de Adobe Flash
asi que no te preocupes por lo estandarizado que proviene de una buena fuente...
la clave de esto esta aqui
-
function javatoflash(){
-
window.document.video.SetVariable("myvar", "<%=vidd%>");
-
window.document.video.SetVariable("myvar2", "<%=tipo%>");
-
}
esto lo que hace es imprimir la direccion de donde esta alojado tu video o cancion (http://www.tudominio.com/videos/v4.flv) o (http://www.tudominio.com/mp3/m34.mp3) en el objeto embedido dentro del html en video.asp
Esta funcion se manda llamar al final del archivo video.asp
-
javatoflash();
Para esto previamente recivimos en vidd y tipo, los valores enviados por GET desde index.asp que probablemente nos llegaron de esta manera:
video.asp?tipo=FLV&video=videos/v4.flv
o asi
video.asp?tipo=MP3&video=mp3/m34.mp3
y tu tendras que concatenar al valor de la variable "vidd", el inicio de tu direccion web.. esto sucede aqui
-
dim vidd, tipo
-
vidd="http://www.tudominio.com/" & request.QueryString("video")
-
tipo=request.QueryString("tipo")
Nota: esto va ANTES de la funcion javatoflash() de JavaScript que comente arriba...
y este es el objeto que esta embebido en nuestro html de video.asp
-
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="video" align="middle">
-
<param name="allowScriptAccess" value="sameDomain" />
-
<param name="movie" value="video.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed swLiveConnect="true" src="video.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="video" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
-
</object>
No le vallas a mover a nada porque hay ciertos parametros que por default no venian y que se los tuve que configurar como swLiveConnect="true"Como podras ver, este codigo manda a llamar un archivo "video.swf", el cual es el reproductor flash... no te preocupes, al final del post estan las descargas de todos estos archivos...Recuerda que el tipo de archivo de video que reproduce este reproductor unicamente son .flv estos archivos son los videos de youtube y otras paginas similares... para calar este sistema tendras que tener un servidor que soporte ASP y que normalmente se cobra :S y tambien tendras que meter en la carpeta "/videos" algun archivo .flv con el nombre v1.flv por ejemplo y tambien actualizar la base de datos con Microsoft Access para que el link este correcto y tambien en la carpeta "/mp3" colocar alguna cancion llamada m1.mp3 por ejemplo y tambien actualizar la base de datos... para conseguir el video ve Aqui y descargate alguno de youtube o donde quieras, todos son iguales [archivo.flv]Esto es lo unico del video.asp
Aun falta el archivo "subir.asp"... ese lo publicare mañana pero demientras ve checando estos dos archivos y si tienes dudas comentarios o cualquier cosa hasnoslo saber... comentalo aqui porfa 
Saludos!
Descargas