UOB直接フロントエンドのアクセス制御

ここでの導入のバージョン大化直接制御WEB3.2を行うためのAPIの日々の開発では、このプラグインはまだ非常に良いですが個人的な感情は、その後、コントロールのバージョンの機能を紹介住んアクセスのポイントをいくつかと遭遇しますあなたが詳細を知りたい場合は質問は、ご覧くださいアンソロジー- VUEの統合監視ビデオを

機能

  • 大化のweb3.2制御を介して、再生コントロールのフロントエンドの(古い)は非常に一般的であると言うことができる<object>によって導入されたラベルコントロール<script for="..." event="...">または内蔵AddEventListenerのイベントを結合します。
  • web3.2 APIの戻り値は、標準、成功リターンでtrue、返すために失敗false
  • web3.2 APIは、同期方法です。
  • 以下に詳細に説明するようにまず、web3.2プレイする前にプレビューモードを設定し、ライブ演奏のセクションを。
  • web3.2コントロールは、APIによってスクリーンショット(黒疑問符面)をサポートしていません。

二次開発

アクセス

大化のweb3.2は、プラグインの第二のパッケージをしなかったので、私たちは追加する必要が<object>タグを。マルチプラグスイッチの需要があるため、それほどコードによって自動的に挿入することが必要です。

insertDom() {
    const { ele } = this.options
    let object = parseToDOM(`<object id="ocx" width="100%" height="100%" classid="CLSID:7F9063B6-E081-49DB-9FEC-D72422F2727F">
                            </object>`
                            )
    document.querySelector(ele).appendChild(object)
    return document.querySelector(`${ele} > #ocx`)
}

parseToDOM(str) {
    let div = document.createElement("div")
    div.innerHTML = str
    return div.childNodes[0]
}

ここで最初ゲット<object>ラベルdomオブジェクトをし、指定に挿入ele下の要素、そして最終的にプラグオブジェクトに戻ります。

プラグインがロードされています

大化のweb3.2制御はプラグインがロードされているかどうかを判断するための直接的な方法を提供していない、私はドキュメントで見つけることができませんでした、兄はあなたに感謝し、私に教えてください知っているがありますだから、読み込みが完了しているかどうかを確認するために、ここでリターンをターゲットに直接過ごします。

init() {
    this.videoObj = this.insertDom()
    return this.videoObj ? true : false
}

ログの機器

web3.2は、ログアウト使用してログインすることは非常に簡単ですLoginDeviceExログアウト使用して、メソッドをLogoutDeviceすることができ方法を。LoginDeviceEx受け入れられている方法は、IPアドレス、ポート番号、ユーザー名、パスワード、およびログオンタイプログの種類は異なるログイン方法を表す整数、最も一般的に使用されている0(TCPのログインモード)。

login(videoInfo) {
    let { ip, port, username, password, logintype } = videoInfo
    return this.videoObj.LoginDeviceEx(ip, port, username, password, logintype)
}

LoginDeviceEx戻り値は単純ではないtrue/falseが、エラーコードは、0ログインが成功したことを意味し、他のエラーコードが以下の表に対応します。

this.ERROR_CODE = {
    1: '密码不正确',
    2: '用户名不存在',
    3: '登录超时',
    4: '帐号已登录',
    5: '帐号已被锁定',
    6: '帐号被列为黑名单',
    7: '资源不足,系统忙',
    8: '子连接失败',
    9: '主连接失败,视频源无法访问',
    10: '超过最大用户连接数'
}

リアルプレーヤー

web3.2によって最初に再生する前に必要なSetModuleMode再生モードの設定方法1が通過する前に、(プレビューモード)のConnectRealVideoEx二つのパラメータ、チャネル番号パラメータ1を受け付ける映像法を、再生、パラメータ2は、ストリームタイプ、マスターキーでありますストリーム1、サブコードストリーム2

realPlay(videoInfo) {
    try {
        let { channel, streamType } = videoInfo
        //设为预览模式
        this.videoObj.SetModuleMode(1) 
        //连接主线视屏
        this.videoObj.ConnectRealVideoEx(channel, streamType) 
        return true
    }
    catch (e) {
        return false
    }
}

ウィンドウの数を設定します。

トラブルのビットのweb3.2設定ウィンドウの数、それが通過しているためSetWndStateの方法1つのパラメータよりもかかるjson文字列セットを、とのドキュメントの開発jsonフォーマット文字列もさらに少ないが、最終的には正しい形式を見つけるためにデモを選ぶと言いました:

setWindowNum(windowNum) {
    try {
        this.videoObj.SetWndState(JSON.stringify({ 
            "WndState": { 
                "IsFullScreen": false, 
                "PicWndIndex": 0, 
                "PicWndMode": 2, 
                "PicWndNum": 0, 
                "VideoWndIndex": 0, 
                "VideoWndMode": 1, 
                "VideoWndNum": windowNum
            } 
        }))
        return true
    }
    catch (e) {
        return false
    }
}

概要

大化かなり標準のweb3.2 APIセットの直接制御は、ドキュメントのいくつかの部分が完璧ではない、それ以上の結合デモコードの開発を必要としています。

おすすめ

転載: blog.csdn.net/weixin_33743248/article/details/90952922