簡體   English   中英

未捕獲的語法錯誤:意外的令牌“<”(在 [object Object]:1:1):Amazon IVS 與 VideoJs 集成

[英]Uncaught SyntaxError: Unexpected token '<' (at [object Object]:1:1) : Amazon IVS with VideoJs Integration

我目前正在使用 aws_ivs 和 VideoJs 集成構建一個實時流媒體反應應用程序並獲得

未捕獲的語法錯誤:意外的標記“<”(在 [object Object]:1:1)

我發現錯誤是在創建播放器實例時從“techOrder:['AmazonIVS']”行生成的,並且視頻沒有播放。

ReactJs

import React, { useEffect, useRef } from 'react'
import videojs from 'video.js'
import 'video.js/dist/video-js.css'
import {
  VideoJSQualityPlugin,
  VideoJSIVSTech,
  registerIVSQualityPlugin,
  registerIVSTech,
  VideoJSEvents,
} from 'amazon-ivs-player'
import wasmBinaryPath from 'amazon-ivs-player/dist/assets/amazon-ivs-wasmworker.min.wasm'
import wasmWorkerPath from 'amazon-ivs-player/dist/assets/amazon-ivs-wasmworker.min.js'

const VideoJS = (props) => {
  const videoRef = useRef(null)
  let link =
    'https://fcc3ddae59ed.us-west-2.playback.live-video.net/api/video/v1/us-west-2.893648527354.channel.DmumNckWFTqz.m3u8'

  useEffect(() => {
    const createAbsolutePath = (assetPath) =>
      new URL(assetPath, document.URL).toString()

    registerIVSTech(videojs, {
      wasmWorker: createAbsolutePath(wasmWorkerPath),
      wasmBinary: createAbsolutePath(wasmBinaryPath),
    })
    registerIVSQualityPlugin(videojs)
    const player = videojs('videojs-player', {
      techOrder: ['AmazonIVS'],
      autoplay: true,
      controls: true,
      responsive: true,
      fluid: true,
      loop: true,
      mute: true,
      width: '640',
      height: '264',
      playbackRates: [0.5, 1, 1.5, 2],
      aspectRatio: '16:9',
    })

    if (player) {
      player.enableIVSQualityPlugin()
      const events = player.getIVSEvents()
      console.log('events: ', events)
      const ivsPlayer = player.getIVSPlayer()
      ivsPlayer.addEventListener(events.PlayerEventType.ERROR, () => {
        console.log('Error')
      })
      ivsPlayer.addEventListener(events.PlayerState.PLAYING, () => {
         console.log('IVS Player is playing')
       })
    }

    player.autoplay(link)
    player.src(link)
  }, [])

  return (
    <div data-vjs-player>
      <video
        ref={videoRef}
        id='videojs-player'
        className='video-js vjs-big-play-centered'
      />
    </div>
  )
}

export default VideoJS

這是我正在關注的文檔: https://docs.aws.amazon.com/ivs/latest/userguide/player-videojs.html

答案在於“您需要托管它們才能使用 IVS 播放器”這一行。

Amazon Player SDK:VideoJs 集成 - 在第 4 點的最后,您會找到這一行。

由於我必須將 nextJs 用於最終產品,因此我托管(添加)了位於“node_modules/”文件夾下的“amazon-ivs-wasmworker.min.js”和“amazon-ivs-wasmworker.min.wasm”文件在公共文件夾中的“amazon-ivs-player/dist/”下。

因此,您所要做的就是以您各自的語言托管它們。

我附上了圖片

Angular - 語法錯誤:意外的標記“<”,“<div id="text_translate"><p> 這是部署在 AWS Amplify 上的 Angular 應用程序</p><p>該應用程序已成功部署,但呈現白屏,並且在控制台上我收到此消息:</p><p> <a href="https://i.stack.imgur.com/dYSXk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/dYSXk.png" alt="在此處輸入圖像描述"></a></p><p> 但我不知道如何解決。</p><hr><p> 這是服務提供者:</p><pre> import { Inject, Injectable } from '@angular/core'; import { CONFIG_TOKEN, UserService, EuiAppConfig, UserDetails, UserPreferences, I18nService, } from '@eui/core'; import { HttpClient } from '@angular/common/http'; import { Observable, of, zip } from 'rxjs'; import { switchMap } from 'rxjs/operators'; @Injectable({ providedIn: 'root', }) export class AppStarterService { defaultUserPreferences: UserPreferences; constructor( protected userService: UserService, protected i18nService: I18nService, @Inject(CONFIG_TOKEN) private config: EuiAppConfig, protected http: HttpClient, ) { } start(): Observable<any> { return zip( this.initUserService().pipe( switchMap((userStatus) => { console.log(userStatus); return this.i18nService.init(); }), ), ); } /** * Fetches user details, * create user: UserState object * then initialise to the UserService on run time */ initUserService(): Observable<any> { return zip( this.fetchUserDetails(), ).pipe( switchMap(([userDetails]) => this.userService.init(userDetails))); } /** * Fetches user details */ private fetchUserDetails(): Observable<UserDetails> { const moduleCoreApi = this.config.modules.core; const url = `${moduleCoreApi.base}${moduleCoreApi.userDetails}`; const user = { userId: 'anonymous' }; if (;url) { return of(user). } return this.http;get<UserDetails>(url); } }</pre><p> 從該代碼來看,這是“ <strong>const moduleCoreApi = this.config.modules.core;</strong> ”和“ <strong>moduleCoreApi.base</strong> ”部分</p><pre>import { ModulesConfig } from '@eui/core'; export const MODULES: ModulesConfig = { core: { base: '/api', } };</pre><p> 這是<strong>environment.prod.ts</strong></p><pre> import { EuiEnvConfig } from '@eui/core'; export const environment: EuiEnvConfig = { production: true, enableDevToolRedux: false, envDynamicConfig: { uri: '/assets/env-json-config.json', deepMerge: true, merge: ['modules'], }, };</pre><p> 從該代碼中,這是<strong>env-json-config.json</strong></p><pre> { "modules": { "core": { "userDetails": "/user-details" } } }</pre></div>

[英]Angular - SyntaxError: Unexpected token '<', "<!DOCTYPE "... is not valid JSON

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

相關問題 未捕獲的語法錯誤:Gcloud 中 app.js 中的意外標記“<” React App 托管在 Firebase Hosting - Uncaught SyntaxError: Unexpected token '<' 如何修復這個錯誤? 意外的語法錯誤:意外的標記“!” Uncaught SyntaxError: 意外的標記 '<', " "... JSON at JSON.parse (<anonymous> )</anonymous> Uncaught (in promise) SyntaxError: Unexpected token < in JSON at position 0 當試圖從 api 路由中的 s3 中提取數據時 將 reactjs 應用程序部署到 aws amplify 會導致白屏並出現錯誤“Uncaught SyntaxError: Unexpected token '<'” IVS通證授權 NextJS Jest SyntaxError:意外的令牌“導出” Angular - 語法錯誤:意外的標記“<”,“<div id="text_translate"><p> 這是部署在 AWS Amplify 上的 Angular 應用程序</p><p>該應用程序已成功部署,但呈現白屏,並且在控制台上我收到此消息:</p><p> <a href="https://i.stack.imgur.com/dYSXk.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/dYSXk.png" alt="在此處輸入圖像描述"></a></p><p> 但我不知道如何解決。</p><hr><p> 這是服務提供者:</p><pre> import { Inject, Injectable } from '@angular/core'; import { CONFIG_TOKEN, UserService, EuiAppConfig, UserDetails, UserPreferences, I18nService, } from '@eui/core'; import { HttpClient } from '@angular/common/http'; import { Observable, of, zip } from 'rxjs'; import { switchMap } from 'rxjs/operators'; @Injectable({ providedIn: 'root', }) export class AppStarterService { defaultUserPreferences: UserPreferences; constructor( protected userService: UserService, protected i18nService: I18nService, @Inject(CONFIG_TOKEN) private config: EuiAppConfig, protected http: HttpClient, ) { } start(): Observable<any> { return zip( this.initUserService().pipe( switchMap((userStatus) => { console.log(userStatus); return this.i18nService.init(); }), ), ); } /** * Fetches user details, * create user: UserState object * then initialise to the UserService on run time */ initUserService(): Observable<any> { return zip( this.fetchUserDetails(), ).pipe( switchMap(([userDetails]) => this.userService.init(userDetails))); } /** * Fetches user details */ private fetchUserDetails(): Observable<UserDetails> { const moduleCoreApi = this.config.modules.core; const url = `${moduleCoreApi.base}${moduleCoreApi.userDetails}`; const user = { userId: 'anonymous' }; if (;url) { return of(user). } return this.http;get<UserDetails>(url); } }</pre><p> 從該代碼來看,這是“ <strong>const moduleCoreApi = this.config.modules.core;</strong> ”和“ <strong>moduleCoreApi.base</strong> ”部分</p><pre>import { ModulesConfig } from '@eui/core'; export const MODULES: ModulesConfig = { core: { base: '/api', } };</pre><p> 這是<strong>environment.prod.ts</strong></p><pre> import { EuiEnvConfig } from '@eui/core'; export const environment: EuiEnvConfig = { production: true, enableDevToolRedux: false, envDynamicConfig: { uri: '/assets/env-json-config.json', deepMerge: true, merge: ['modules'], }, };</pre><p> 從該代碼中,這是<strong>env-json-config.json</strong></p><pre> { "modules": { "core": { "userDetails": "/user-details" } } }</pre></div> Firebase 雲函數部署錯誤 - SyntaxError: Unexpected token '?'
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM