none
clonar video a otro winform RRS feed

  • Pregunta

  • Hola a todos , como puedo clonar un video que muestro en un winform a otro winform estoy utilizando como componente para mostrar el video de la web cam un control de Aforge llamado videosourceplayer... ya lo muestro en un winform y lo que deseo es que al evento doble click me salga el mismo video en otro formulario al mismo tiempo y no se como hacerlo agardezco su ayuda de antemano...
    miércoles, 25 de abril de 2018 19:50

Todas las respuestas

  • hola

    Deberias ver como no pasar el path al archivo de video sino asignarle el stream o byte array, de esta forma no se queda bloqueado el file y puede asignarlo a otro componente

    o quizas usar el

    Image.FromFile Method  de Aforge provee y no el de .net, ya que alli menciona que este no lockea el archivo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 25 de abril de 2018 20:39
  • leandro gracias por responder pero la situacion es la siguiente no me refiero a un archive de video como tal sino es que estoy mostrando en un winform mediante el component videosourceplayer de Aforge un video k capture de una webcam y lo k kiero es que cuando le de doble click me Habra el mismo video en otro winform con el mismo componente noc si me explico bien ?
    jueves, 26 de abril de 2018 14:42
  • hola

    >>lo k kiero es que cuando le de doble click me Habra el mismo video en otro winform con el mismo componente noc si me explico bien ?

    entonces no entiendo, que es lo que impide que lo realices si el video se obtiene desde la webcam ?

    simplemente usas el mismo codigo que en el primer form, quizas al abrir el popup debas detener la reproducion del form que quedaria por detras

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 26 de abril de 2018 14:46
  • Te voy a explicar complete para que me entiendas. en el Form principal por asi decirlo tengo 5 videosourceplayer con un combobox cada uno los cuales me cargan las webcam que tengo conectadas a la pc el usuario debe escoger de los combobox la web que desea conectar a cada videosourceplayer una ves hecho eso imagina que estan ya mostrando los videos de las 5 web cam al mismo tiempo y necesito que cuando el usuario de dobleclick sobre cualkiera de los 5 videosiurce del winform principal se Habra otro con el video de esa webcam precisamente si fuera una sola es como dices pero de alguna manera tengo k pasarle al otro winform la webcam k es y es lo que no c como hacer
    jueves, 26 de abril de 2018 15:04
  • Te voy a explicar complete para que me entiendas. en el Form principal por asi decirlo tengo 5 videosourceplayer con un combobox cada uno los cuales me cargan las webcam que tengo conectadas a la pc el usuario debe escoger de los combobox la web que desea conectar a cada videosourceplayer una ves hecho eso imagina que estan ya mostrando los videos de las 5 web cam al mismo tiempo y necesito que cuando el usuario de dobleclick sobre cualkiera de los 5 videosiurce del winform principal se Habra otro con el video de esa webcam precisamente si fuera una sola es como dices pero de alguna manera tengo k pasarle al otro winform la webcam k es y es lo que no c como hacer

    mira este es el codigo k uso para cargar el

    private void VideoSource_NewFrame1(object sender, NewFrameEventArgs eventArgs)
            {
                try
                {
                    Bitmap Imagen = (Bitmap)eventArgs.Frame.Clone();
                    videoSourcePlayer1.BackgroundImage = Imagen;
                }
                catch (Exception ex)
                {

                    throw ex;
                }

            }

    private void btn_vc1_Click(object sender, EventArgs e)
            {
                try
                {
                    string monike = DispositivosDeVideo[cmb_Video1.SelectedIndex].MonikerString;
                    VideoCaptureDevice FuenteDeVideo = null;
                    for (int i = 0; i < DispositivosDeVideo.Count; i++)
                    {
                        if (DispositivosDeVideo[i].MonikerString == monike)
                        {
                            FuenteDeVideo = new VideoCaptureDevice(DispositivosDeVideo[i].MonikerString);
                        }
                    }
                    FuenteDeVideo.NewFrame += new NewFrameEventHandler(VideoSource_NewFrame1);
                    videoSourcePlayer1.VideoSource = FuenteDeVideo;
                    //Inicializar el control
                    videoSourcePlayer1.Start();
                    //vsource1.Show();
                    //vsource1.Start();
                    led1.Value = true;
                    btn_vc1.Enabled = false;
                    btn_vd1.Enabled = true;
                }
                catch (Exception ex)
                {

                    throw ex;
                }
            }

    public void BuscarDispositivos()
            {
                DispositivosDeVideo = new FilterInfoCollection(FilterCategory.VideoInputDevice);
                if (DispositivosDeVideo.Count == 0)
                {
                    ExistenDispositivos = false;
                    MessageBox.Show("No hay dispositivos de video conectados");
                }

                else
                {
                    //for (int i = 0; i < DispositivosDeVideo.Count; i++)
                    //{
                    //    System.Diagnostics.Debug.WriteLine(DispositivosDeVideo[i].MonikerString);
                    //}
                    LlenarCombox.Llenar_cmb_Videos(DispositivosDeVideo, cmb_Video1, cmb_Video2, cmb_Video3, cmb_Video4, cmb_Video5);
                    ExistenDispositivos = true;
                }
            }

    el metodo este ultimo lo llamo en el load del formulario para cargar todos los dispositivos de video k esten cnectados a l apc


    • Editado jlpavon1987 jueves, 26 de abril de 2018 15:20
    jueves, 26 de abril de 2018 15:17