Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - generico

Páginas: [1]
1
¡Hola de nuevo! He hecho una prueba que quizá ayude.

He creado un nuevo DIV donde he insertado lo siguiente, directamente desde Notepad++, sin leer nada del XML y sin usar innerHTML:
Código: [Seleccionar]
<div id="capa23232" style="width:480px; height:135px; background-color: #CAF3F0;">
<iframe width="400" height="200" src="https://www.youtube.com/embed/-3bKJZxBrMI" frameborder="0" allowfullscreen></iframe>
    </div>

Mirando el código fuente de la página veo que el código está perfecto, peeeeero, si hago un alert de lo que contiene el DIV ya me lo muestra cambiado:
Código: [Seleccionar]
var mostrarcapa23=document.getElementById('capa23232').innerHTML;
alert(mostrarcapa23);

Es decir, creo que el problema está muy cerca jaja. ¿Por qué demonios me lo cambia? Yo quiero usar el código que tengo en el código fuente, no el que sale por pantalla al usar alert o al usar un if.

¡Un saludo!

2
Ogramar: Gracias por tu respuesta. En el XML guardo los códigos html dentro de CDATA para que no haya problemas:
Código: [Seleccionar]
<![CDATA[<iframe width="400" height="200" src="https://www.youtube.com/embed/-3bKJZxBrMI" frameborder="0" allowfullscreen></iframe>]]>Por otro lado, he hecho lo que dices y he puesto un alert para que me muestre lo que extrae del XML. Curiosamente, lo extrae perfectamente, es decir, lo que saca del XML está perfecto, sin modificar nada. Se cambia una vez lo meto dentro del DIV con innerHTML. ¡Me estoy volviendo loco! jajajaj

Príncipe_Azul: Muchas gracias por tu respuesta, para nada molestas tio. Para programar la aplicación estoy usando Notepad++, así que según lo que dices, no debería cambiarme las cosas.
De todas formas, voy a realizar varias pruebas con otros editores y navegadores, porque no sé donde puede estar el problema.

Si alguien encuentra algún fallo o sabe lo que puede estar fallando que me lo diga, ¡se lo agradecería muchísimo!
Un saludo y muchas gracias por vuestras respuestas :)

3
Ok voy a ello:

Código que utilizo para leer el XML y sacar las anotaciones, es decir, en ese XML tengo metido los iframes y demás que quiero luego meter en el DIV:
Código: [Seleccionar]
<script type="text/javascript">




if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","upload/anotaciones/anotaciones.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;


var cent = 0;
var anotaciones=xmlDoc.getElementsByTagName("anotacion");
</script>

Ahora con esta función es cuando cambio el contenido del DIV:
Código: [Seleccionar]
<script type="text/javascript">
function updateValues() {
   
   var vid = document.getElementById("video");
var current = vid.currentTime;

   for(i=0;i<anotaciones.length;i++){ //recorremos todas las anotaciones buscando en qué lugar nos encontramos. Si current está entre seg y seg2 es que hemos encontrado donde estamos, en qué anotación
       if(current>=anotaciones[i].getElementsByTagName("seg")[0].childNodes[0].nodeValue && current<anotaciones[i].getElementsByTagName("seg2")[0].childNodes[0].nodeValue){
   cent=i;
       }
   }
   var img = anotaciones[cent].getElementsByTagName("img")[0].childNodes[0].nodeValue;
   var embed = anotaciones[cent].getElementsByTagName("embed")[0].childNodes[0].nodeValue;
    //si estamos entre seg y seg2 vamos a mostrar el comentario, sino no mostraremos nada
if(current>=anotaciones[cent].getElementsByTagName("seg")[0].childNodes[0].nodeValue && current<anotaciones[cent].getElementsByTagName("seg2")[0].childNodes[0].nodeValue){
    //ahora hacemos un if para que los elementos de la capa SOLO CAMBIEN cuando lo que hay en el xml sea diferente de lo que hay en la capa. Así la capa no se actualiza cada 0,1 segundos
if(img + "<br>" + anotaciones[cent].getElementsByTagName("texto")[0].childNodes[0].nodeValue +  "<br>" + embed != document.getElementById('capa').innerHTML){
document.getElementById('capa').innerHTML = img + "<br>" +  anotaciones[cent].getElementsByTagName("texto")[0].childNodes[0].nodeValue +  "<br>" + embed;
if(embed!=""){ //si hay un embed (aplicacion, video, flash) que el video se pare.
pausarlink();
var mostrarcapa=document.getElementById('capa').innerHTML;
alert(mostrarcapa);//esto es para mostrar el contenido de 'capa' una vez lo hemos metido.
}
}
}else{
document.getElementById('capa').innerHTML = " ";
}

}</script>

Y la capa simplemente tiene esto al instante inicial:
Código: [Seleccionar]
<div id="capa" style="width:480px; height:135px; background-color: #CAF3F0;">
    ANOTACIONES:<br>
    </div>


4
Hola muy buenas a todos. Llevo un par de días trabado en el proyecto que estoy haciendo, he buscado información tanto en español como inglés pero no doy con una posible solución.

Os cuento: Tengo un DIV ('capa') donde voy cambiando el contenido con getElementById('capa').innerHTML. Funciona perfecto, pero cuando el contenido es un iframe, un código embebido o similares (<object> por ejemplo) me cambia el código, me lo reordena. Y necesito que no me lo cambie porque en la aplicación comparo lo que tengo originalmente con lo que hay actualmente en la 'capa'.

Os pongo un ejemplo de lo que hace:
Si tengo esto: <iframe width="400" height="200" src="https://www.youtube.com/embed/-3bKJZxBrMI" frameborder="0" allowfullscreen></iframe>

Me lo cambia por esto: <iframe src="https://www.youtube.com/embed/-3bKJZxBrMI" allowfullscreen="" frameborder="0" height="200" width="400"></iframe>

Como podeis ver, el width y el height están cambiados de sitio, así como el allowfullscreen al que se le ha añadido ="".
Quiero que no se cambie, que lo muestre tal cual.

El valor del DIV lo cambio con el siguiente código:
Código: [Seleccionar]
document.getElementById('capa').innerHTML = embed;donde embed lo extraigo de un archivo XML que tengo de la siguiente forma:
Código: [Seleccionar]
var embed = anotaciones[cent].getElementsByTagName("embed")[0].childNodes[0].nodeValue;
¿Alguien me puede hechar un cable? ¡¡No sé cómo continuar!!!

5
Muy buenas a todos, ojalá encuentre ayuda por aquí porque llevo una semana con el mismo problema. Seguro que es muy fácil de solucionar pero no doy con la tecla correcta.

A ver si consigo explicarme correctamente: Quiero mostrar un vídeo y en un DIV ir mostrando una serie de anotaciones que tengo en un archivo XML. En dicho XML tengo nodos con el texto, segundo inicial y segundo final.
El código que tengo funciona bien, muestra los datos del XML correctamente, las anotaciones en su sitio, etc... ¡Pero fallan los links!

Para que vayan saltando las anotaciones, ejecuto la función updateValues cada 0,1 segundos (con setInterval) para saber el tiempo actual del video. El problema es que si en una anotación hay un link html, no se puede hacer click sobre él correctamente, es como si se reiniciara cada 0,1 segundos.

Os dejo el código para que lo veais con detenimiento. ¡Necesito ayuda urgente! Mil gracias de antemano.

Código: [Seleccionar]
<html>
 <head>
  <title>Prueba leer xml</title>
  <script type="text/javascript" src="jwplayer/jwplayer.js"></script>
  <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.0.3.js"></script>
 </head>
 <body>
 
<script type="text/javascript">




if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","upload/anotaciones/anotacionesoriginales.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;


var cent = 0;
var anotaciones=xmlDoc.getElementsByTagName("anotacion");

function updateValues() {
   
   var vid = document.getElementById("video");
var current = vid.currentTime;

   for(i=0;i<anotaciones.length;i++){ //recorremos todas las anotaciones buscando en qué lugar nos encontramos. Si current está entre seg y seg2 es que hemos encontrado donde estamos, en qué anotación
       if(current>=anotaciones[i].getElementsByTagName("seg")[0].childNodes[0].nodeValue && current<anotaciones[i].getElementsByTagName("seg2")[0].childNodes[0].nodeValue){
   cent=i;
       }
   }
   
    //ahora hacemos un if para que los elementos de la capa SOLO CAMBIEN cuando lo que hay en el xml sea diferente de lo que hay en la capa. Así la capa no se actualiza cada 0,1 segundos
if(anotaciones[cent].getElementsByTagName("texto")[0].childNodes[0].nodeValue != document.getElementById('capa').innerHTML){
    //si estamos entre seg y seg2 vamos a mostrar el comentario, sino no mostraremos nada
if(current>=anotaciones[cent].getElementsByTagName("seg")[0].childNodes[0].nodeValue && current<anotaciones[cent].getElementsByTagName("seg2")[0].childNodes[0].nodeValue){


var img = anotaciones[cent].getElementsByTagName("img")[0].childNodes[0].nodeValue; //sacamos el valor del nodo img. Si lo definimos antes Javascript da error al no encontrar nada.
document.getElementById('capa').innerHTML = img + "<br>" +  anotaciones[cent].getElementsByTagName("texto")[0].childNodes[0].nodeValue;

}else{
document.getElementById('capa').innerHTML = " ";
}

}
}
</script>

<script type="text/javascript">
$(function(){

})
setInterval(function(){
$('#currentTime').html($('#video_container').find('video').get(0).currentTime); //esta linea y la de abajo se pueden quitar. Solo sirven para ver en current time en directo.
$('#totalTime').html($('#video_container').find('video').get(0).duration);   
updateValues();
},100)
</script>

 <div id="capa" style="width:480px; height:135px; background-color: #CAF3F0;">
    ANOTACIONES:<br>
    </div>

<div id="capa2" style="width:480px; height:135px; background-color: #CAF3F0;">
    <a href="http://google.com">link text</a>
    </div>

<div id="video_container">
    <video height=270 width=480 preload="none" controls="" id="video" tabindex="0">
      <source type="video/mp4" src="Upload/videos/videoff.mp4" id="mp4"></source>
      <p>Your user agent does not support the HTML5 Video element.</p>
    </video>
</div>

<div>Current Time : <span  id="currentTime">0 </span></div>
<div>Total time : <span id="totalTime">0</span></div>

 </body>
</html>

6
Pues yo creo que voy a tirar por php entonces, intentar procesar y sino añadir capas encima del video. Lo veo lo más factible.
Y lo del tutor sí que tiene idea, pero no veo que se implique demasiado, supongo que será normal, ellos nos sirven de guía pero no deben hacer el trabajo, aunque ayuda sobre esto si que necesito jajaj.

Cualquier otro consejo o advertencia que me queráis dar, bienvenido será!

7
Hola Javi muchísimas gracias por tu respuesta.
Sí, mi carrera es telecomunicaciones y tengo tutor, he hablado con él pero no llego a ningún punto concreto en este aspecto (creo que no tiene mucha idea jaja) así que me plantearé hablar con otros profesores que he tenido.

Usaría Matlab porque he estado usándolo estos años y se de su potencia, pero tal y como dices integrarlo con otros sistemas es complejo. Php ahora mismo es la opción que más me convence, he estado mirando y aunque no es muy potente en cuanto a procesamiento de video, sí que permite hacer cosas así: http://php-qb.net/index.php/2-uncategorised/16-a-new-bridge-between-php-and-ffmpeg
Y si no pudiera realizar un procesamiento directo de video, optaría por hacer algo como youtube, que realmente no procesa el video sino que añade unas capas con el texto pero el vídeo lo deja igual.

¿Qué opinais? ¿Lo veis factible?

8
Hola buenas, he estado buscando algún foro sobre programación y he encontrado este. He estado leyendo algunos post y he visto que hay gente por aquí que sabe muchísimo sobre estos temas, por lo que creo que es el lugar adecuado para preguntar.

Voy a empezar mi proyecto final de carrera, se trata de una aplicación que permita añadir anotaciones a los vídeos, algo parecido a lo que hace Youtube pero bastante más sencillo. El usuario podría importar su vídeo y añadir anotaciones de texto en cualquier punto, con la duración deseada, cambiar el tipo de letra, color, etc...

Mi problema es que no estoy seguro de qué lenguaje de programación utilizar, me he estado informando pero aun así no me decido por ninguno. Estoy entre: Matlab, php y C++.

Me defiendo con los 3, pero con los que más familiarizados estoy son Matlab y php.

¿Qué lenguaje de estos 3 veis mejor para realizar este proyecto? Sobre todo quiero saber con cuál sería más sencillo y viable implementarlo.

Un saludo.

Páginas: [1]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".