Разрешения веб-камеры Flash

У меня проблема со вспышкой, с которой я не очень хорошо знаком. Я основываю этот код на том, что идет с медиа-сервером wowza в примере с видеочатом, но, в отличие от этого примера, flash не запрашивает у меня разрешение или запрет на использование видеокамеры.

Ниже мой сценарий действий:

import flash.events.MouseEvent;
import flash.events.NetStatusEvent;
import flash.media.Camera;
import flash.media.Microphone;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.system.Security;
import flash.system.SecurityPanel;
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.StatusEvent;

public class QandA extends Sprite {
    Security.LOCAL_TRUSTED;

    private var nc:NetConnection = null;
    private var camera:Camera;
    private var microphone:Microphone;
    private var nsPublish:NetStream = null;                      
    private var nsPlay:NetStream = null;
    private var videoCamera:Video;
    public var prompt:TextField;

    public function QandA():void {
        stage.align = "TL";
        stage.scaleMode = "noScale";
        videoCamera = new Video(160,120);
        addChild(videoCamera);
        camera = Camera.getCamera();
        microphone = Microphone.getMicrophone();
        if (camera.muted) {
            trace("Camera Muted");
            Security.showSettings(SecurityPanel.CAMERA);
            camera.addEventListener(StatusEvent.STATUS, statusHandler);
        } else {
            startCamera();
        }

    }

    private function statusHandler(e:StatusEvent):void {
        if (e.code == "Camera.Unmuted") {
            trace("Camera Unmuted");
            startCamera();
            camera.removeEventListener(StatusEvent.STATUS, statusHandler);
        } else {
            trace("StatusEvent: " + e.code + " " + e.toString());
        }
    }

    private function startCamera():void {
        // here are all the quality and performance settings that we suggest
        camera.setMode(160, 120, 12, false);
        camera.setQuality(0, 75);
        camera.setKeyFrameInterval(24);
        microphone.rate = 11;
        microphone.setSilenceLevel(0);

        nc = new NetConnection();
        nc.connect("rtmp://localhost/live/");

        // get status information from the NetConnection object
        nc.addEventListener(NetStatusEvent.NET_STATUS, ncOnStatus); 
    }

    private function nsPublishOnStatus(infoObject:NetStatusEvent):void
    {
        trace("nsPublish: "+infoObject.info.code+" ("+infoObject.info.description+")");
    }

    private function ncOnStatus(infoObject:NetStatusEvent):void
    {
        trace("nc: "+infoObject.info.code+" ("+infoObject.info.description+")");
        nsPublish = new NetStream(nc);
        nsPublish.addEventListener(NetStatusEvent.NET_STATUS, nsPublishOnStatus);
        nsPublish.bufferTime = 0;
        nsPublish.publish("testing");
        // attach the camera and microphone to the server
        nsPublish.attachCamera(camera);
        nsPublish.attachAudio(microphone);
    }
}

Я почти уверен, что это что-то простое; поскольку я видел этот код на бесчисленных сайтах, когда обсуждал, как публиковать на живом сервере.

Любая помощь будет принята с благодарностью, я попытался использовать этот код на веб-сервере, чтобы увидеть, были ли это просто локальные настройки безопасности, но это не так.

Журналы, которые я получаю при отладке приложения во Flash CS5:

Попытка запустить проигрыватель и подключиться к нему с помощью URL-адреса D: \ development \ qanda \ qandaHost.swf
[SWF] D: \ development \ qanda \ qandaHost.swf - 3583 байта после распаковки
Камера отключена
nc: NetConnection.Connect.Success (Соединение успешно.)
nsPublish: NetStream.Publish.Start (Тестирование публикации.)


person Scott    schedule 06.07.2010    source источник
comment
Хм, мне удалось установить и запустить соединение, однако я не вижу канал веб-камеры в экспортируемом SWF-файле. Это просто белый экран. Однако, если я перейду на сервер потокового видео в реальном времени, я действительно смогу увидеть информацию веб-камеры. Что-то не так с моим интерфейсом.   -  person Scott    schedule 06.07.2010


Ответы (2)


Ниже неверно:

Security.showSettings(SecurityPanel.**CAMERA**);

Вам следует написать:

Security.showSettings(SecurityPanel.**PRIVACY**);
person Flasher    schedule 08.04.2011

Я не прикреплял камеру к видео, поэтому я не мог видеть себя, хотя на самом деле видео было потоковым.

private function startCamera():void {
    trace("Attempting to start camera");
    // here are all the quality and performance settings that we suggest
    camera.setMode(160, 120, 12, false);
    camera.setQuality(0, 75);
    camera.setKeyFrameInterval(24);
    videoCamera.attachCamera(camera);
    microphone.rate = 11;
    microphone.setSilenceLevel(0);
}
person Scott    schedule 06.07.2010