У меня проблема с видео. js я использую его как компонент в vue. js. Я получаю ссылку .mpd с сервера, и я хочу показать видео по ссылке, мне понравился пример в документации Видео. js и Vue интеграция .
всегда при первом вызове VideoPlayer показывал ошибку:
VIDEO JS: ERROR: (CODE: 4 MEDIA_ERR_SRC_NOT_SUPPORTED) Для этого носителя не был найден совместимый источник.
Когда я go выхожу на предыдущую страницу, а затем снова в VideoPlayer, это работает. (также не работает, когда я обновляю sh страницу)
Ps: я использую vuex для получения всех данных с сервера.
Вот мой код для Stream. vue:
<template>
<div class="container">
<h1 class="text-center">MediaPlayer for: {{ mediaName }}</h1>
<video-player :options="videoOptions" />
</div>
</template>
<script>
import { mapState, mapActions } from "vuex";
import VideoPlayer from "@/components/VideoPlayer.vue";
export default {
name: "Stream",
props: ["stream_id", "source"],
components: {
VideoPlayer
},
created() {
this.fetchStream(this.stream_id);
},
computed: {
...mapState("stream", ["stream", "mediaName"]),
videoOptions() {
return {
autoplay: false,
controls: true,
sources: [
{
src: this.stream.stream_link,
type: "application/dash+xml"
}
],
poster:"http://placehold.it/380?text=DMAX Video 2"
};
}
},
methods: {
...mapActions("stream", ["fetchStream"])
}
};
</script>
<style scoped></style>
и вот VideoPlayer. vue:
<template>
<div>
<video ref="videoPlayer" class="video-js"></video>
</div>
</template>
<script>
import videojs from "video.js";
export default {
name: "VideoPlayer",
props: {
options: {
type: Object,
default() {
return {};
}
}
},
data() {
return {
player: null
};
},
mounted() {
this.player = videojs(
this.$refs.videoPlayer,
this.options,
function onPlayerReady() {
console.log("onPlayerReady", this);
}
);
},
beforeDestroy() {
if (this.player) {
this.player.dispose();
}
}
};
</script>