具体实现:

<template>
	<div class="container" ref="container" style="width:100%;height:200px;"> </div>
</template>
<script>
	export default {
		data() {
			return {
				jessibuca: '',
				videoUrl:'***********' // 后台推送过来的直播地址
		mounted() {
			this.play()
		methods: {
			init() {
				const options = {};
				this.jessibuca = new window.Jessibuca(Object.assign({
						container: this.$refs.container, // 播放器容器,若为 string ,则底层调用的是 document.getElementById('id')
						videoBuffer: 0.2, // 设置最大缓冲时长,单位毫秒,播放器会自动消除延迟。
						forceNoOffscreen: true, // 是否不使用离屏模式(提升渲染能力)
						hasAudio: false, // 是否有音频
						rotate: 0, // 设置旋转角度,只支持,0(默认) ,180,270 三个值
						isResize: false, // 1.当为true的时候:视频画面做等比缩放后,高或宽对齐canvas区域,画面不被拉伸,但有黑边;2.当为false的时候:视频画面完全填充canvas区域,画面会被拉伸
						isFullSize: true, // 当为true的时候:视频画面做等比缩放后,完全填充canvas区域,画面不被拉伸,没有黑边,但画面显示不全
						debug: false, // 是否开启控制台调试打印
						timeout: 30, // 设置超时时长, 单位秒,在连接成功之前和播放中途,如果超过设定时长无数据返回,则回调timeout事件
						supportDblclickFullscreen: true, // 是否支持屏幕的双击事件,触发全屏,取消全屏事件。
						showBandwidth: false, // 是否显示网速
						operateBtns: {
							fullscreen: true,// 是否显示全屏按钮
							screenshot: true,// 是否显示截图按钮
							play: true,// 是否显示播放暂停按钮
							audio: true,// 是否显示声音按钮
							recorder: false
						keepScreenOn: false, // 开启屏幕常亮,在手机浏览器上, canvas标签渲染视频并不会像video标签那样保持屏幕常亮。
						isNotMute: false, // 是否开启声音,默认是关闭声音播放的。
						loadingText: "加载中...", // 加载过程中文案。
						background: "", // 背景图片。
						decoder: '/public/jessibuca/decoder.js',
						// useMSE: false,
						isFlv: true,
					options
				));
			play() {
				const url = this.videoUrl;
				this.init();
				this.jessibuca.play(url);
			destroy() {
				if (this.jessibuca) {
					this.jessibuca.destroy();
</script>
<style scoped lang="scss"></style>

参考文章:

以上是自己项目里简单使用时的调用方法,如有更多需求需要实现的可参考以下博主的文章:
https://blog.csdn.net/weixin_39277183/article/details/126836811

“世界是个回音谷,念念不忘必有回响,你大声喊唱,山谷雷鸣,音传千里,一叠一叠,一浪一浪,彼岸世界都收到了。
凡事念念不忘,必有回响。因它在传递你心间的声音,绵绵不绝,遂相印于心。”

支持H265 软解码H.264/H.265+AAC/MP3/Speex,WebGL视频渲染,WebAudio音频播放
项目,我们经常会遇到自定义组件传值的问题,方法很多种,但是原理很简单,下述文档总结实际项目使用的传值方式。 父组件传递给子组件某一值,子组件内会修改该值,然后父组件需要获取新值 在 Vue ,父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop给子组件下发数据,子组件通过事件给父组件发送消息。 自定义组件传值 常规prop-event <prop address=address update=val> address = val key=4></prop> [removed] 1.引入Cesium和Vue组件 在Vue项目使用Cesium,可以通过引入cesium和Vue-Cesium组件库来实现。在Vue组件使用Cesium的方法是在组件引入CesiumViewer组件,然后通过ref获取到CesiumViewer对象,就可以使用Cesium的API来实现填挖方分析了。 2.加载地形数据和模型数据 Cesium可以加载各种地形和模型数据,包括STL、OBJ、COLLADA、GeoJSON等格式的数据,在Vue项目也可以使用Vue组件的方式加载数据,并且可以通过Vue的数据绑定功能灵活变换模型的颜色、大小等属性。 3.计算填挖方体积 为了实现填挖方分析,需要对地形和模型数据进行计算,得到填挖方体积。这可以通过使用Cesium提供的各种计算API来实现,例如Cesium.CesiumTerrainProvider计算地形数据的高度信息,Cesium.GeometryPipeline计算模型的体积和质心信息等。 4.实现可视化效果 最后,将计算得到的填挖方体积结果可视化展示出来,可以通过使用Vue-Cesium提供的组件库的几何体Visible和Primitive实现使用这些组件可以创建几何体、修改其颜色和透明度等属性,以展示填挖方体积的分析结果。 综上所述,在Vue项目使用Cesium实现填挖方分析需要进行地形和模型数据加载、计算填挖方体积和实现可视化效果等步骤。需要在Vue组件利用Cesium的API,从而实现填挖方分析并将其呈现出来。 ### 回答2: Vue项目使用Cesium实现填挖方分析需要的基本步骤如下: 1.导入Cesium的相关库,包括Cesium.js、Cesium.css等。 2.通过vue-cli创建一个Vue项目,然后在项目集成cesium。 3.在项目引入Cesium相关的组件,如Viewer、ImageryLayer、Terrain、Camera、CzmlDataSource等。 4.加载地图数据和创建3D场景。 5.通过Cesium提供的API,将填挖方分析所需的数据添加到场景,如体积数据、地面模型等。 6.根据需要配置分析参数,如忽略地形高度、设置填挖面属性等。 7.使用Cesium提供的分析工具对填挖面进行分析,获取分析结果。 8.将分析结果以图表、图像或地图形式呈现在页面。 在实现填挖方分析时,可参考Cesium官方提供的示例代码和文档,根据自己的需求进行定制化和扩展。通过使用Cesium实现填挖方分析,可以有效提高数据可视化和交互性,同时增加用户体验和操作效率。 ### 回答3: Vue.js 是一款行的JavaScript框架,而Cesium则是一款基于WebGL的开源虚拟地球引擎,它能够制作具有高度精细度的3D地图。在Vue项目集成Cesium可以使得地图数据更加直观生动,针对填挖方分析需求,我们可以通过Cesium在Vue项目实现这个功能。 首先,我们需要将Cesium引入Vue项目,可以通过npm install cesium安装Cesium依赖,然后在.vue文件通过import引入cesium。 接下来,我们需要准备地形数据并加载Cesium地形服务。在.vue文件,我们可以通过Cesium的ImageryProvider、terrainProvider类来实现加载地形。通过ImageryProvider,可以加载卫星图像作为底图,并同时指定terrainProvider来加载高程数据。在这里,我们需要加载高程数据来计算填挖方量,因此我们需要调用Cesium的terrainProvider来加载高程数据。加载高程数据之后,我们需要根据需求进行数据处理,如根据地区进行裁剪,计算出填挖方量等。 最后,我们需要将处理后的数据传递给Cesium来展示在地图上。可以通过调用Cesium的entity、primitive等实例来展示数据。例如,我们可以通过entity来展示填方区域,通过primitive来展示填方边界等。 综上所述,在Vue项目使用Cesium实现填挖方分析需要以下步骤:引入Cesium依赖,加载地形数据,数据处理与计算,数据展示。