next.js 视频:错误:(代码:4媒体错误SRC不支持)

alen0pnh  于 2023-03-18  发布在  其他
关注(0)|答案(2)|浏览(227)

我有一个Next应用,我想在其中嵌入播放器。为此,我决定使用video.js库。一切正常,例如,YouTube视频。但是,Video.js播放器不播放Azure Media Service上托管的视频
我的玩家代码:

import { useCallback, useEffect, useState } from 'react';
import videojs from 'video.js';
import 'videojs-youtube';
import 'videojs-flash';
import 'videojs-vimeo';

const Player = (props) => {
  const [videoEl, setVideoEl] = useState(null);
  const onVideo = useCallback((el) => {
    setVideoEl(el);
  }, []);

  useEffect(() => {
    if (videoEl == null) return;
    const player = videojs(videoEl, props);
    console.log('quality', player.getVideoPlaybackQuality());
    return () => {
      player.dispose();
    };
  }, [props, videoEl]);

  return (
    <>
      {/* wrap the player in a div with a `data-vjs-player` attribute
      so videojs won't create additional wrapper in the DOM */}
      <div data-vjs-player>
        <video
          ref={onVideo}
          className="video-js"
          style={{ width: '100%', height: '100%' }}
          playsInline
        />
      </div>
    </>
  );
};

export default Player;

视频的选项如下:

const videoJsOptions = {
  techOrder: ['html', 'youtube', 'flash', 'other supported tech'],
  autoplay: true,
  controls: true,
  usingNativeControls: true,
  sources: [
    {
      src:
'https://my-video.streaming.media.azure.net/49a94f-122/manifest',
      type: 'application/vnd.ms-sstr+xml'
    }
  ]
};

在应用程序的头部,我注入了来自Azure文档的以下链接:

<link
      href="//amp.azure.net/libs/amp/2.3.5/skins/amp-default/azuremediaplayer.min.css"
      rel="stylesheet"
    />
    <script src="//amp.azure.net/libs/amp/2.3.5/azuremediaplayer.min.js"></script>

我得到这个错误

VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) No compatible source was found for this media.
kq0g1dla

kq0g1dla1#

不确定上面提到的具体问题,我认为您可能正在尝试使用平滑流“ms-sstr+xml”,这不会是Video.js上的最佳选择。
在我们刚刚发布的这个repo中,我们确实有一些示例,展示了如何将Video.js与AMS一起使用,同时还列出了已知的问题。https://github.com/Azure-Samples/media-services-3rdparty-player-samples
看一下那里,看看它是否对你的用例场景有帮助。欢迎你对这个repo的反馈,因为它是新的。如果你看到任何问题,请在github中添加。

baubqpgj

baubqpgj2#

同样的问题,我无法使VideoJS与Azure Media直播一起工作
我尝试使用“application/x-mpegURL”,但播放器只是作为循环加载,流不会启动。

<video
            id="my-video"
            class="video-js"
            controls
            preload="auto"
            width="640"
            height="264"
            poster="MY_VIDEO_POSTER.jpg"
            data-setup='{"liveui": true}'
          >
            <source src="https://my-stream.preview-euno.channel.media.azure.net/id/preview.ism/manifest" type="application/x-mpegURL" />
            <p class="vjs-no-js">
              To view this video please enable JavaScript, and consider upgrading to a
              web browser that
              <a href="https://videojs.com/html5-video-support/" target="_blank"
                >supports HTML5 video</a
              >
            </p>
          </video>

相关问题