コード例 #1
0
ファイル: VideoEncode.cs プロジェクト: vzolotov/WebSharp
        private void OnHandleMessage(object sender, Var varMessage)
        {
            if (!varMessage.IsDictionary)
            {
                LogToConsole(PPLogLevel.Error, "Invalid message!");
                return;
            }

            var    dictMessage = new VarDictionary(varMessage);
            string command     = dictMessage.Get("command").AsString();

            if (command == "start")
            {
                requestedSize = new PPSize(dictMessage.Get("width").AsInt(),
                                           dictMessage.Get("height").AsInt());
                var var_track = dictMessage.Get("track");
                if (!var_track.IsResource)
                {
                    LogToConsole(PPLogLevel.Error, "Given track is not a resource");
                    return;
                }

                var resourceTrack = new MediaStreamVideoTrack(var_track.AsResource());
                if (!resourceTrack.IsEmpty)
                {
                    videoTrack = resourceTrack;
                    videoTrack.HandleConfigure += OnConfigureTrack;
                    videoTrack.HandleFrame     += OnTrackFrame;
                    videoEncoder = new VideoEncoder(this);
                    videoProfile = VideoProfileFromString(dictMessage.Get("profile").AsString());
                    ConfigureTrack();
                }
            }
            else if (command == "stop")
            {
                StopEncode();
                Log("stopped");
            }
            else
            {
                LogToConsole(PPLogLevel.Error, "Invalid command!");
            }
        }
コード例 #2
0
        private void OnMessage(object sender, Var var_message)
        {
            if (!var_message.IsDictionary)
            {
                return;
            }
            var var_dictionary_message = new VarDictionary(var_message);
            var var_track = var_dictionary_message.Get("track");

            if (!var_track.IsResource)
            {
                return;
            }

            var resourceTrack = var_track.AsResource();

            audioTrack = new MediaStreamAudioTrack(resourceTrack);
            audioTrack.HandleBuffer += OnGetBuffer;
            audioTrack.GetBuffer();
        }