flashvideo

1.0.3 • Public • Published

flashvideo

a tiny library used to publish / play rtmp streams.

usage

 
/**
 * xdyVideo 创建Flash窗口对象
 * domEleId 界面DOM的Id
 * width 窗口对象宽度,建议100% 由容器决定
 * height 窗口对象高度,建议100% 由容器决定
 * ready_callback_function flash窗口对象创建完毕的回调函数[异步],只有该方法通知创建成功,才能向窗口对象发命令消息
 * msg_callback_function flash消息处理结果通知
 */
 
import xdyVideo from 'xdyVideo.js';
 
let publishFlash = null;
let playFlash = null;
 
// publish
function publishVideo() {
  const sendPublishCommand = function () {
    const msg = JSON.stringify({
      type: 10,
      data: {
        // video&audio
        video: true,
        audio: true,
 
        // onlyaudio
        // video: true,
        // audio: false
        url: 'rtmp://123.56.205.116:1935/live/alexwang'
      }
    });
    publishFlash._js2native(msg);
  }
 
  if (publishFlash) {
    return sendPublishCommand();
  }
 
  xdyVideo(
    'publish',
    '100%',
    '100%',
    function (error, newPublishFlash) {
      console.log(error);
      if (error) {
        return console.error(error);
      }
 
      // 保存Flash窗口对象,对象窗口创建不易,不要频繁创建,下次调用优先判断该对象是否存在
      publishFlash = newPublishFlash;
 
      sendPublishCommand();
    },
    function (msg) {
      console.log('[publish] native 2 js', msg);
    }
  )
}
 
// play
function playVideo() {
  const sendPlayCommand = function () {
    const msg = JSON.stringify({
      type: 2,
      data: {
        url: 'rtmp://123.56.205.116:1935/live/alexwang'
      }
    });
    playFlash._js2native(msg);
  }
 
  if (playFlash) {
    return sendPlayCommand();
  }
 
  xdyVideo(
    'play',
    '100%',
    '100%',
    function createPlayReady(error, playflash) {
      if (error) {
        return console.error(error);
      }
 
      // 保存Flash窗口对象,对象窗口创建不易,不要频繁创建,下次调用优先判断该对象是否存在
      playFlash = playflash;
 
      sendPlayCommand();
    },
    function (msg) {
      console.log(' [play] native 2 js', msg);
    }
  )
}
 
// 打开/关闭视频一致的
function stop() {
  const msg = JSON.stringify({
    type: 5
  });
  publishFlash._js2native(msg);
  playFlash._js2native(msg);
}
 
// for test purposes
publishVideo();
 
playVideo();
 
setTimeout(stop, 5000);
 

Readme

Keywords

Package Sidebar

Install

npm i flashvideo

Weekly Downloads

5

Version

1.0.3

License

MIT

Last publish

Collaborators

  • xinwangwang