我在我的Rails应用程序中使用Videojs和Videojs-record来创建消息,并从用户浏览器捕获视频和屏幕。我正在使用tailwindcss构建一个自定义UI,并且我正在使用Stimulusjs来处理所有的按钮点击等。
我没有使用Videojs播放器中的控件来获取设备,而是使用了一个按钮来调用我的刺激控制器中的操作。
startCapture() {
let options = {
// video.js options
controls: false,
bigPlayButton: true,
loop: false,
fluid: true,
plugins: {
// videojs-record plugin options
record: {
audio: true,
video: {
width: { min: 640, ideal: 852, max: 1280 },
height: { min: 480, ideal: 480, max: 720 }
}
}
}
}
player = videojs(this.previewMediaTarget, options, () => {
console.log("Videojs-record is ready")
}
}当我想录制视频和屏幕/音频(在选项中做了一些修改)时,这非常有用,但我也想让我的用户能够创建音频消息。
当我将播放器的选项更改为
audio: true,
video: falseVideojs-record会自动尝试在videojs-wavesurfer和麦克风插件中使用wavesurfer库。
wavesurfer库很棒,我不会反对使用它,但是player.record().getDevice() Videojs-record方法在使用它时不起作用,相反,它似乎迫使我点击大按钮来启用麦克风。

我尝试过找到一种类似于player.record().getDevice()的方法,以便从wavesurfer.js和麦克风插件中启用用户的麦克风,但我一直没有任何运气。
有没有一种方法可以让我只使用player.record().getDevice(),而不用使用wavesurfer插件就能得到用户的麦克风?或者有没有一个我还没有找到的videojs-wavesurfer方法,可以让我使用自定义按钮来getDevice?谢谢!
发布于 2021-09-28 15:19:37
我想通了。
首先,无法不在Videojs中使用wavesurfer --只录制音频,但我想出了如何在我的项目中使用它。
我遇到的问题是,我试图设置播放器选项,并在激活我的刺激动作时构建播放器,因此在加载控制器之后。这导致WaveSurfer.microphone.create()无法初始化。我解决了这个问题,方法是将选项移动到刺激connect()操作,以便在加载刺激控制器时构建播放器。然后,在我的操作中,我调用player.record().getDevice(),一切都可以完美地工作。
https://stackoverflow.com/questions/69308902
复制相似问题