uni-app 求一个类似 live-pusher 的插件

发布于 1周前 作者 itying888 来自 Uni-App

uni-app 求一个类似 live-pusher 的插件

使用uni-app中的live-pusher拉流延迟特别大在4-6秒左右,现求一个低延迟的SDK。不要什么企业账号绑定key的、联系QQ:760261296

2 回复

专业插件开发 1196097915


uni-app 中,如果你正在寻找一个类似于 live-pusher 的插件,用于实现实时视频推流功能,你可以考虑使用 uni-live-player 和一些第三方推流库来实现类似的功能。虽然 uni-app 官方没有直接提供 live-pusher 组件,但你可以通过集成第三方 SDK 或使用 H5+ API 来实现视频推流。

以下是一个使用 H5+ API 结合 uni-app 实现视频推流的示例代码框架。请注意,这只是一个基础框架,实际使用时你可能需要根据具体的推流服务器和 SDK 进行调整。

<template>
  <view class="container">
    <button @click="startCamera">Start Camera</button>
    <button @click="stopCamera">Stop Camera</button>
    <canvas canvas-id="liveCanvas" style="width: 320px; height: 240px;"></canvas>
  </view>
</template>

<script>
export default {
  methods: {
    startCamera() {
      plus.io.resolveLocalFileSystemURL('_doc/stream.mp4', entry => {
        entry.createFile('exclusive', 'video.mp4', { exclusive: false }, fileEntry => {
          fileEntry.createWriter(writer => {
            const options = {
              audio: true,
              video: {
                quality: 'high'
              }
            };
            const context = plus.android.importClass('android.graphics.Canvas');
            const mediaRecorder = new plus.media.MediaRecorder(options);
            mediaRecorder.setOutput(fileEntry.toLocalURL());
            mediaRecorder.start();

            // Here you would typically set up a canvas and draw frames to it
            // for pushing to a live stream server, but this example just records to a file

            mediaRecorder.onerror = e => {
              console.error('MediaRecorder error:', e);
            };

            mediaRecorder.onstop = () => {
              console.log('Recording stopped');
            };
          }, e => {
            console.error('Create writer failed:', e);
          });
        }, e => {
          console.error('Create file failed:', e);
        });
      }, e => {
        console.error('Resolve file system URL failed:', e);
      });
    },
    stopCamera() {
      // Implement stop logic for media recorder
    }
  }
};
</script>

<style>
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
</style>

注意

  1. 上述代码仅展示了如何使用 plus.media.MediaRecorder 录制视频到本地文件,并未实现真正的推流功能。
  2. 要实现推流,你需要使用第三方推流库(如 AgoraJitsi 等)的 SDK,并结合 uni-app 的插件机制进行集成。
  3. 由于 uni-app 和 H5+ API 的限制,某些功能可能需要在原生层面进行更多定制。

建议查阅相关推流库的文档,并根据其提供的 SDK 和示例代码进行具体实现。

回到顶部