【问题标题】:custom error message in player for livestream直播播放器中的自定义错误消息
【发布时间】:2021-07-04 21:10:18
【问题描述】:

我有一个如下所示的反应代码,它呈现播放器。在下面的代码中,如果条件为真,则调用 ReactJWPlayer 的代码。

const player = ()=> {
    if(condition) {
        return (
            <ReactJWPlayer
                onPlaylist={[props.playlist]}
                onPlay={() => onPlay()}
                autoPlay={props.autoplay}
                isMuted={false}
            />
        )
    }
}

问题陈述:

我想要实现的是,如果直播突然结束,我想显示custom error message。现在,我看到了:

This video file cannot be played 

(Error Code: 232011)

我想知道我需要对上面的代码进行哪些更改,以便可以将上面的错误消息替换为以下错误消息:

Video will be available soon.

【问题讨论】:

标签: javascript reactjs jwplayer


【解决方案1】:

您可以使用onError prop 来捕获所有“媒体”错误。可以使用 onSetupError 属性捕获设置错误。 (P.S. 在较新版本的库中,您应该能够使用 onError 来捕获两种错误类型)这是一个有效的 example 如何使用代码 102404 处理错误:

import ReactJWPlayer from "react-jw-player";

export default function App() {
  
  const setupErrorHandler= (error) => {
    console.log("Setup error");
    console.log(error);
    if (error && error.code === 102404) {
      window.alert(error.message);
    }
    //here you write similar if condition to check if error has error 
      code 232404
    if(error && error.code === 232404){
        //do something..
    }
  };

 const mediaErrorHandler= (error) => {
    console.log("Media error");
    console.log(error);
    //handle error
  };

  return (
    <div className="App">
      <div
        className="jw-video-container"
        data-mediaid="TAITbudl"
        style={{ height: "100%", width: "100%" }}
      >
        <ReactJWPlayer
          playerId="TAITbudl"
          playerScript="https://content.jwplatform.com/libraries/j9BLvpMc.js"
          playlist="https://cdn.jwplayer.com/v2/playlists/vXggtmeu"
         
          onError={(event) => mediaErrorHandler(event)}
          onSetupError={(event) => setupErrorHandler(event)}
        />
      </div>
    </div>
  );
}

注意:所有jwplayer 错误都有这种形式:

 {
      "code": 104153,
      "message": "Sorry, the video player failed to load.",
      "sourceError": { Error object | null },
      "type": "setupError"
    }

documentation

【讨论】:

  • 感谢您的指点。感谢您对此的帮助。我想知道您是否可以给我一些指示,我需要在该方法中编写什么。
  • 当错误码为232011时,我想在播放器上显示“视频即将上线”。 if(error &amp;&amp; error.code === 232011){ } 我想知道我需要在 if 块内写什么,以便在错误代码为 232011 时在播放器上显示“视频将很快可用”。
  • 你在吗?
  • 实现这一目标的一种方法是在错误处理程序方法中获取 jwplplayer 的引用,如下所示: const player = window.jwplayer(playerId) 然后调用 load() 方法并将您的自定义错误消息传递给它。 (请参阅jwplayer.com/developers/web-player-demos/custom-error)其他方法是将 ReactJWPlayer 组件包装在 div 旁边,在错误处理程序方法中获取对该 div 的引用,并更改 innerHTML 属性以显示您的自定义错误段落。你可以看看这个例子:codepen.io/fdambrosio/pen/vmbPEK
【解决方案2】:

不知何故使用其他国家的VPN解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2019-08-29
    相关资源
    最近更新 更多