‫Bienvenido de nuevo.
‫Es el momento del desafío nuevamente, y espero que logres ver todo el video de la herencia y comprendas lo
‫que estaba sucediendo y cómo crear la publicación y la publicación de imagen y cómo se correlacionan entre sí, y
‫cómo están conectados entre sí.
‫Entonces, esa publicación de imagen es la clase de manejo y se presenta como la clase base porque ahora el pequeño desafío es
‫crear una nueva clase llamada Publicación de video, que es una clase de manejo con la URL del video de la propiedad y
‫la longitud.
‫Entonces, estas son propiedades únicas para esa publicación de video.
‫Así que imagina que todavía estamos en este tipo de cosas y tenemos publicaciones normales que son solo texto de lo que
‫tenemos o que pueden ser texto, pero también cualquier otra cosa.
‫Luego tenemos una publicación de imagen que también tiene una URL de imagen.
‫Y ahora lo que queremos tener es una publicación de video donde en realidad tengamos una URL de video en lugar de
‫una URL de imagen y también la duración del video.
‫Entonces, esta es la información que queremos tener sobre cada publicación de video.
‫Entonces, ahora cree los constructores requeridos para crear una publicación de video ajustada al método de cadena en
‫consecuencia, porque hemos visto en la publicación de la imagen que el método de dos cadenas agrega más información basada en
‫la información que ya se envió aquí.
‫Pero queremos saber aún más sobre la publicación de video de lo que sabemos sobre la publicación.
‫Entonces, solo para el método de cadena, luego cree una instancia de publicación de video.
‫Prácticamente lo mismo que hicimos aquí con la publicación de la imagen.
‫Simplemente cree uno y luego móntelo en la consola.
‫Entonces, tal vez debería agregar eso y usar el método de dos cadenas en él.
‫Entonces, si te sientes como un verdadero desafío, puedes seguir adelante con las cosas más avanzadas.
‫Así que usa un temporizador y un método de devolución de llamada aquí y puedes buscarlo en Google.
‫Puede simplemente sí, puede intentar hacerlo usted mismo o puede buscarlo en Google.
‫Entonces, la idea es que nuestra publicación de video tenga un método llamado Reproducir y uno que se llame Detener y una reproducción
‫se llame.
‫Luego, deben escribir la duración actual del video.
‫Entonces, cada segundo que debería haber un tic escribiendo en qué segundo del
‫video estamos actualmente y luego se presiona una parada, el temporizador se detiene y también hay un texto escrito, detén eso.
‫Y eso es mejor con nuestra gente.
‫Y sí, eso es todo.
‫Por lo tanto, reproduzca el video después de crear la instancia y póngalo en pausa cuando el usuario presione anarquía o tal vez
‫deténgalo cuando el usuario presione cualquier tecla.
‫Entonces, por proceso, cualquier clave, solo quiero decir que tiene una línea roja allí.
‫Así que manténgalo simple o arriesgado mejor.
‫Así que mantenlo simple.
‫Y eso es lo que ves aquí y te ayudará a crear incluso reproductores de video más adelante.
‫Así que eso es realmente solo un concepto básico y use temporizadores aquí.
‫Pero como dije, esta es la parte más avanzada.
‫Si no tiene ganas de hacerlo o si es demasiado difícil, también está bien.
‫Puede simplemente ver el video, pero realmente le recomiendo que lo vea porque le enseñará cómo usar los temporizadores
‫y las devoluciones de llamada con solo buscarlo en Google.
‫Y es mejor intentar experimentar cómo funciona y definitivamente lo recordará la próxima vez que
‫desee usar temporizadores.
‫Está bien.
‫Entonces, posiblemente, ya sabes, y trata de hacer este desafío.
‫Espero que ya lo hayas probado, en primer lugar, por supuesto, necesitamos una nueva clase.
‫Y va a ser nuestra publicación de video y ahora esa publicación de video debería heredar de la publicación y
‫aquí, como dije, tendríamos una propiedad diferente o en realidad dos propiedades diferentes, que antes
‫no teníamos.
‫Y uno de ellos es el video que es un video de cadena protegida.
‫Usted es L y es un get a set, luego lo mismo con la longitud protegida int length con
‫una L mayúscula. En el mejor de los casos, también consígalo y listo.
‫A continuación, necesitamos constructor.
‫Así que creemos un constructor aquí, publicación de video público y lo dejaré vacío nuevamente.
‫El mismo enfoque que teníamos en nuestra publicación de imagen aquí donde simplemente creamos este constructor vacío porque ninguno de los constructores
‫llama a una clase base.
‫El de la publicación se llamará para que el de aquí.
‫Entonces, si tenemos una entidad que publica, se llamará al método de publicación o al constructor de publicaciones se
‫llamará el predeterminado.
‫Pero también tenemos uno en el que realmente entregamos la información requerida.
‫Entonces, por ejemplo, para una publicación de video, lo que es interesante allí, bueno, es por un lado el título nuevamente, el título de
‫la cadena y luego el nombre de usuario.
‫Entonces, se envía por nombre de usuario, luego se le envía un video de cadena L, su URL y el bool se publica e incluso la longitud en
‫longitud también es útil aquí.
‫Está bien.
‫Así que un constructor bastante largo en términos de sus parámetros.
‫Y ahora, por supuesto, necesitamos usar este punto y, por supuesto, aquí también se requerirá este DOT, obtener una identificación o
‫obtener la siguiente identificación.
‫Por eso, no queremos crear una identificación que ya esté allí.
‫Queremos seguir adelante y usar la siguiente identificación.
‫Y como recordará, la siguiente ID establecida está regresando y aumenta o incrementa la ID de publicación
‫actual, que es una variable estática.
‫Por lo tanto, es único para todo este programa, lo que significa que se anulará con el nuevo valor
‫o, básicamente, obtendremos el nuevo valor.
‫Y siempre será solo una identificación una vez.
‫Entonces, cada lado será único y eso es realmente importante aquí.
‫Luego, el título será el título y, de hecho, incluso podemos seguir adelante y copiarlo desde aquí porque es el
‫mismo enfoque.
‫Derecha.
‫Y.
‫Podemos simplemente importar aquí y ahora seguimos adelante con nuestras URL únicas, entonces, um, video de propiedad, su URL es
‫miembro de la publicación de video y, de hecho, la llamé accidentalmente recién publicada, pero debería
‫ser una publicación de video pública, pero no de publicación.
‫Y ese será este video.
‫Tu URL será video YORO y esta longitud será una longitud.
‫Entonces, cualquier cosa que se dé aquí como argumento debe tomarse en las propiedades del objeto, que son la duración, el video, la
‫URL y, por supuesto, la que heredamos de la publicación.
‫De acuerdo, ese es nuestro constructor.
‫Y ahora necesitamos tener un método de dos cadenas.
‫Como dijimos, necesitaríamos un método de cadena específico.
‫Y es más fácil si lo copiamos de la publicación de la imagen y lo anulamos nuevamente.
‫Entonces, el público anula una cadena a otra.
‫Así que anulamos el método de nuestra clase de publicación, lo que significa que anulamos este método aquí, que de nuevo anula
‫del sistema ese objeto.
‫Así que esa es la belleza de la herencia que puede anular y anular.
‫Así que ahora tenemos el formato de cadena y podría ser un poco diferente.
‫Bueno, diferente.
‫Podemos decidir si queremos eso o no.
‫Podríamos enviar la longitud aquí o dejarla como está.
‫Entonces, la única diferencia no sería la URL de la imagen, sino el video que se requiere.
‫Y si le apetece, también puede agregar la longitud aquí.
‫Entonces, si quieres informarte sobre eso.
‫Así que quizás hagamos eso.
‫Quizás sea más fácil simplemente hacer eso.
‫Y eso será para entonces y aquí.
‫Solo voy a agregar esto, esa longitud y lo separo por coma.
‫Así que ahora para hacerlo más legible, solo voy a usar una segunda línea aquí.
‫Muy bien, ese es nuestro método de tanga, y ahora podemos seguir adelante con nuestra publicación
‫o, de hecho, en nuestra clase de programa y aquí podemos crear una publicación de video, una publicación de video.
‫Lo llamaremos publicación de video.
‫Uno será una nueva publicación de video.
‫Y podríamos seguir adelante y hacer eso.
‫Pero entonces sería una publicación vacía, que es nuestra publicación de ID cero como esta aquí, que solo tiene mi primera publicación, ya
‫que está completa, es pública y es de Dennis Pennetta, pero eso no es muy interesante.
‫Así que vamos a crear uno con nuestros propios valores únicos, que tendrá un ID único porque lo creamos de esa
‫manera.
‫Entonces podemos seguir adelante aquí.
‫Y voy a decir que este es un video fallido y lo subí.
‫Entonces se cargó y puede encontrarlo en https video dot com slash fail video o algo así.
‫Es solo una identificación falsa o un video de enlace falso.
‫Y luego, como esto es demasiado largo para un papel, lo pasaré al siguiente.
‫Lo que necesitamos ahora, si lo revisa aquí, hay dos sobrecargas.
‫Así que echemos un vistazo al del señor supremo.
‫Necesitamos tener información adicional sobre el acceso o si es público o no.
‫Aquí estamos de nuevo, público, y ahora necesitamos la extensión.
‫Digamos que este video dura 15 segundos o quizás 10 segundos.
‫Diez está bien.
‫Así que haz que dure 10 segundos.
‫Y ahora.
‫Eso es todo, así que ya podemos comenzar nuestro programa y deberíamos ver la información sobre
‫nuestra publicación de video y, por supuesto, aún falta la parte más desafiante.
‫Así que ahí estamos.
‫Echa un vistazo a mis zapatos nuevos en images, punto com.
‫Y, de hecho, todavía no llamamos al método el método de dos cadenas.
‫Así que quizás deberíamos hacer eso.
‫Y a continuación, debemos llamar a estas publicaciones de video al método de cadena.
‫Está bien.
‫Entonces, por cierto, si se estaba preguntando una postal de video, puede ver que ya hay varios métodos
‫aquí.
‫Y no creamos esos números.
‫Ellos simplemente estaban ahí.
‫Y eso se debe a que heredamos de la publicación, que nuevamente, hereda del sistema ese objeto.
‫Por cierto, si también lo revisa para publicar uno, publique uno en el que también pueda ver esos métodos allí.
‫Así que es igual a que el código hash obtenga el tipo de actualización de estos métodos, se heredan del sistema, esa clase de
‫objeto.
‫Está bien.
‫Entonces ahora tenemos las dos cadenas.
‫Así que ahora, por supuesto, necesitamos poner eso en una consola.
‫Derecha.
‫Y de hecho, copiemos este código aquí y reemplacemos la publicación de imagen por video.
‫Publica uno.
‫Está bien.
‫Y ahora podemos empezar.
‫Alli estamos nosotros.
‫Así que una cosa es para los deseos de cumpleaños, luego tres.
‫Como puede ver, la publicación del video tiene una I diferente. D. que nuestra publicación de imagen.
‫Entonces tenemos uno, tres y dos.
‫Ese es solo el orden en el que los escribimos en la consola.
‫Entonces, si lo revisa aquí, la publicación de video, aunque se creó después de la publicación de imagen
‫que imprimimos anteriormente, y eso nos da este orden incorrecto si lo desea.
‫Pero el orden no es tan importante.
‫Si está bien, se basa en lo que quiere mostrar.
‫Entonces, si desea mostrar las imágenes según el orden en que se crearon o las publicaciones en general
‫según el orden en que se crearon, o si desea mostrar primero la última, ese tipo de cosas, luego el
‫orden, de Por supuesto, importa.
‫Pero en nuestro caso, es realmente bueno que lo tengamos de esa manera.
‫Entonces puede ver que la ID se configura en el momento en que se crea el objeto.
‫Entonces hice tres e hice dos y no en el momento en que se llama como aquí, como el método de dos
‫cadenas.
‫Entonces, si desea tener el archivo.
‫Orden por el orden en que se crearon, simplemente seguiríamos así y ahora podemos ver uno, dos y
‫tres.
‫Así que gracias por los felicitaciones de cumpleaños que nuestra imagen por los zapatos nuevos y el video fallido de Dennis Panetta.
‫Y como puede ver aquí, también se envía la longitud de diez.
‫Está bien.
‫Así que esa fue la primera parte.
‫Y ahora el desafío más avanzado, que es crear un temporizador y un método de devolución de llamada, que se llama
‫cada segundo, y debería informarnos sobre la duración del video o la duración actual del video.
‫Y, por supuesto, debemos crear los campos necesarios.
‫Entonces necesitaremos algunos campos adicionales aquí.
‫Por ejemplo, necesitaremos saber en qué punto del video estamos.
‫Así que sigamos adelante y creemos los campos antes de las propiedades.
‫Entonces él tiene propiedades y ahora creemos los campos de miembros.
‫Y uno va a ser un booleano protegido que se está reproduciendo, eso es útil porque si se está reproduciendo un video, entonces
‫puede pausarlo.
‫Si no se reproduce, puede dejar de iniciar.
‫Entonces eso es realmente importante.
‫Entonces, si ya se está reproduciendo un video, no querrá comenzar a reproducirlo.
‫Es por eso que tenemos este booleano de ayuda aquí y luego necesitamos una duración protegida y actual.
‫Ahora es cero para llamar al temporizador.
‫Creamos un nuevo método, creemos un método de juego vacío público y creemos también el método de detención.
‫Tan público vacío Stop.
‫Ahora, ¿qué queremos hacer aquí?
‫Bueno, en primer lugar, escribamos algo en la consola, como jugar, para que sepamos, está bien, el
‫juego se inició o se estaba reproduciendo.
‫Se inició el video.
‫Y aquí quiero configurar el temporizador y primero creemos el temporizador.
‫Entonces vamos a necesitar un temporizador aquí, temporizador, y lo llamaré temporizador.
‫Ahora, para usar el temporizador, necesitamos usar un sistema de subprocesos que es el que necesito usando el sistema,
‫ese subproceso.
‫Y ahora lo que podemos hacer es inicializar el temporizador, en cualquier lugar en el que hayas presionado.
‫Entonces, el temporizador será nuevo.
‫Temporizador, temporizador, devolución de llamada debería ser el método al que se llama después de lo que necesitamos indicar aquí, que solo diré
‫que es ahora.
‫Entonces, como puede ver, necesita una devolución de llamada del temporizador, luego necesita un objeto.
‫Necesitas hacer tiempo y un punto.
‫Y el momento oportuno es cuando debería comenzar.
‫Y el período debe ser la frecuencia con la que debe repetirse o en qué marco de tiempo debe repetirse.
‫Entonces, el tiempo de vencimiento lo pondré en cero y el período es de 1000 milisegundos.
‫Así que ahora, por supuesto, necesito tener este método de devolución de llamada del temporizador y simplemente seguiré adelante y lo crearé.
‫Y debería ser un método privado porque no quiero que nadie más lo llame solo esta clase.
‫Por lo tanto, solo la publicación de video nula debería poder llamar a esta devolución de llamada del temporizador y la devolución de llamada del temporizador.
‫Bueno, necesita un objeto como parámetro.
‫Solo voy a decir, oh, lo voy a llamar.
‫Ah, y ahora puedo verificar si la duración actual está por debajo de la duración del video, luego quiero
‫continuar y aumentar la duración actual en uno y mostrarla en la consola.
‫Entonces, video CW a cero segundos como este y luego necesitamos tener la duración actual.
‫Así que esto es suficiente directamente en la consola.
‫Ahora, para forzar al recolector de basura para este video, solo usaremos la recolección de puntos de GC.
‫Así que limpiará cualquier desorden.
‫Y, por cierto, de lo contrario, si la duración actual no está por debajo de la duración, lo que significa que el video ha terminado, queremos
‫llamar al método de detención.
‫Así que aquí, solo vamos a llamar a detener.
‫Y ahora detener las necesidades, por supuesto, para ser implementado.
‫Así que veamos lo que necesitamos en la línea derecha de Stop Console Todd y esto se detendrá en y luego simplemente lo decimos, en
‫qué segundo detenemos el video.
‫Voy a decir la duración actual.
‫Y, por supuesto, debemos restablecer la duración actual a cero y detener el temporizador y detener el tiempo.
‫A esto lo llamamos ambos métodos.
‫Éste simplemente limpia el tiempo o detiene el temporizador y lo reinicia.
‫Ahora, para hacer esto aún más limpio, como dije, tenemos este campo de juego y podemos usarlo en nuestro
‫método de juego.
‫Entonces, podríamos decir solo si se está reproduciendo es falso.
‫Entonces usamos el signo de exclamación al principio.
‫Solo entonces quiero hacer esto.
‫Solo entonces quiero empezar a jugar.
‫Solo entonces quiero inicializar el temporizador.
‫Y si no se reproduce, no debería pasar nada.
‫Y aquí podemos hacer lo mismo.
‫Entonces, en el método de detención, podemos verificar si su reproducción es verdadera, por lo que solo si el jugador está jugando,
‫deberíamos poder detenerlo.
‫Está bien.
‫Así que eso es todo para nuestra clase posterior de video.
‫Entonces, ahora deberíamos poder verificarlo yendo a nuestro programa y en un momento comenzar a crear o comenzar a reproducir
‫el video.
‫Entonces, lo que voy a hacer es después de haber creado la publicación del video, lo voy a reproducir.
‫Y luego, como dije, me gustaría dejar o dejar que el usuario realmente deje de reproducir el video.
‫Entonces, ¿cómo hacemos esa consola que lee Key?
‫Y luego llamaré al método de parada.
‫Y en el medio, por supuesto, me gustaría informar al usuario sobre lo que debe hacer.
‫Entonces voy a usar S. W. aquí la línea derecha de la consola y voy a decir que presione cualquier tecla para detener el video.
‫Está bien.
‫Y ahora podemos comprobarlo.
‫Y vea si lo que hemos construido allí realmente funciona, de modo que presionemos cualquier tecla para detener el video, como puede
‫ver, el video ha comenzado y se está ejecutando.
‫Y digamos que quiero presionar cualquier tecla.
‫Y de hecho fui demasiado lento.
‫Así que el video pasó y después de 10 segundos, se detuvo.
‫¿Y por qué es eso?
‫Bueno, eso es porque nuestro video dura solo 10 segundos.
‫Entonces tenemos esta propiedad de longitud, que indica la longitud del video.
‫Entonces, digamos que creamos un video diferente y queremos este video o en realidad cambiamos la duración de una
‫publicación de video a solo cinco segundos.
‫Así que hagamos eso y ejecútelo nuevamente, y luego verá que después de cinco segundos, se detendrá.
‫Y ahí estamos, la nieve terminada.
‫Detengámoslo manualmente.
‫Ejecútelo de nuevo.
‫Ahí estamos y presionemos cualquier tecla para detener el video, y no está funcionando, y eso es
‫porque si revisamos la publicación que está jugando Klaus está mal y por eso su reproducción nunca es cierta.
‫Entonces, lo que tenemos que hacer aquí es establecer la reproducción en verdadero, por supuesto.
‫Y lo mismo ocurre con nuestra parada aquí.
‫Por eso decimos que está jugando su falso.
‫Muy bien, ahora volvamos aquí y volvamos a ejecutarlo, y ahora el video se está ejecutando y lo publiqué o lo detuve
‫y dice que se detuvo a las cuatro e incluso podríamos seguir adelante y cambiarlo para detener esos
‫cuatro segundos de esta manera. .
‫Y para tener más tiempo, como viste, estuvo bastante cerca.
‫Me voy a dar 10 segundos de nuevo.
‫Así que lo arrastro.
‫Aquí estoy.
‫Y lo detengo.
‫Entonces presioné la tecla enter.
‫Okeydokey, así que fue todo un desafío.
‫Espero que hayas logrado hacer eso incluso lo más avanzado.
‫Pero lo que es realmente interesante, y no lo he mencionado demasiado, es este método de temporizador completo.
‫Entonces, si lo usó, entonces comprenderá lo que está sucediendo o en este momento de la clase.
‫Entonces, hay una clase llamada Timer y puede usarla para usar métodos de temporizador, trabajar para usar
‫un temporizador.
‫Entonces, lo que hace es seguir adelante y crear un nuevo objeto de temporizador y puede usar una devolución de llamada
‫de temporizador y una devolución de llamada de temporizador le permite ser llamado o ejecutar algún código cada vez que finaliza esta duración.
‫Entonces, cada vez que el marco de tiempo que asignó aquí.
‫Entonces, en mi caso, han pasado mil milisegundos o este período, entonces esta vez recuerde que lo
‫llamaríamos.
‫Así que en mi caso nos llaman cada segundo.
‫Por eso dice video en un segundo, dos segundos y así sucesivamente.
‫Eso es muy bueno porque ahora puede seguir adelante y crear un método basado en temporizador o programas basados en temporizador
‫prácticamente.
‫Y podría crear un temporizador completo con el que un usuario puede jugar y hacer incluso más de lo que acabamos de hacer
‫aquí.
‫Entonces, la idea general es que crea un nuevo temporizador, crea una devolución de llamada del temporizador, que esta vez es un método
‫de devolución de llamada que necesita un objeto que es importante.
‫Y luego aquí puede seguir adelante o dentro de las llaves, puede seguir adelante y ejecutar su código
‫con regularidad.
‫Y eso será de vez en cuando en tantos segundos.
‫Entonces, por supuesto, el objeto del temporizador tiene, si lo miras, un tiempo de vencimiento, que puedes asignar, que
‫es este aquí, y un estado que puedes asignar.
‫Y solo uso el modelo estatal.
‫Está bien.
‫Así que eso fue todo.
‫Y vamos a seguir adelante y ver aún más lo que podemos hacer con la herencia y la programación orientada a objetos en los
‫próximos videos.
‫Así que nos vemos allí.