Pregunta

Actualmente estoy trabajando en un proyecto donde simplemente necesito mostrar la cámara web de los usuarios en un objeto ASP.Image. Estoy usando el trabajo de marco de AFORGE y lo he hecho trabajar en una aplicación de Windows. En la aplicación de Windows configuraría la variable de fuente de video igual a la propiedad de imagen de un cuadro de imagen
En otras palabras:

samplePictureBox1.Image = VideoSource

El problema es que, para ASP, solo hay un objeto ASP: imagen y la única propiedad es .imageurl

imgSource.imageUrl = ???

¿Cómo saldría y vincularía un objeto de transmisión de video a la URL de la imagen o qué otro objeto usaría para mostrar la transmisión? He buscado poner una salida en un archivo ASPX.CS separado para poder usarlo como ImageUrl pero no tuve suerte.
Aquí está mi código para especificar:

//using AForge.Video;
//using AForge.Video.DirectShow;
//using System.Drawing.Imaging;


public partial class WebForm1 : System.Web.UI.Page
{
    private FilterInfoCollection VideoCaptureDevices;
    private VideoCaptureDevice FinalVideo;
    protected void Page_Load(object sender, EventArgs e)
    {
        drpSource.Items.Clear();
        VideoCaptureDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);
        foreach (FilterInfo VideoCaptureDevice in VideoCaptureDevices) 
        {
            drpSource.Items.Add(VideoCaptureDevice.Name);
        }
        drpSource.SelectedIndex = 0;
    }

    protected void btnStart_Click(object sender, EventArgs e)
    {
        FinalVideo = new VideoCaptureDevice(VideoCaptureDevices[drpSource.SelectedIndex].MonikerString);
        FinalVideo.NewFrame +=new NewFrameEventHandler(FinalVideo_NewFrame);
        FinalVideo.Start();
    }
    void FinalVideo_NewFrame(object sender, NewFrameEventArgs deventArgs)
    {
        imgSource.ImageUrl=(FinalVideo.ToString());
    }
}

También he poblado un cuadro combinado con la fuente de video diferente del usuario. Que también se muestra correctamente

Realmente aprecio cualquier ayuda. Esto se traducirá en comunicaciones. Quiero poder transmitir entre usuarios como Omegle y Chatroulette. Si alguien recomendaría un mejor marco para buscar estoy abierto, solo he buscado a Aforge y sin toque como dos marcos de C# que admiten la transmisión de video.

He visto a muchos usar flash y sé un poco de ActionScript, pero para ser completamente honesto, prefiero no meterse demasiado en Flash, ya que ActionScript es bastante dolor y, desde mi opinión, en algunos aspectos, flash lentamente y lentamente. morir.

¿Fue útil?

Solución

@Keithnicholas es correcto. Una aplicación web no es la misma que una aplicación Cliente/WinForms. Se ejecuta una aplicación web en el servidor web y no en el navegador web.

No tiene acceso a la cámara web del usuario. Debe utilizar una tecnología del lado del cliente como Flash o Silverlight para poder usar la cámara web desde el servidor.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top