YTPlayerView 不在模拟器上播放内容(解码失败,错误代码)

Posted

技术标签:

【中文标题】YTPlayerView 不在模拟器上播放内容(解码失败,错误代码)【英文标题】:YTPlayerView does not play Content on Simulator (Decoding failed with error code) 【发布时间】:2019-04-25 08:56:32 【问题描述】:

当我播放普通内容时,它加载得非常好 模拟器。

YTPlayerView 参数

@implementation SingleVideoViewController

- (void)viewDidLoad 
  [super viewDidLoad];
  NSString *videoId = @"weRHyjj34ZE";

  // For a full list of player parameters, see the documentation for the html5 player
  // at: https://developers.google.com/youtube/player_parameters?playerVersion=HTML5
  NSDictionary *playerVars = @
      @"controls" : @0,
      @"playsinline" : @1,
      @"autohide" : @1,
      @"showinfo" : @0,
      @"modestbranding" : @1
  ;
  self.playerView.delegate = self;
  [self.playerView loadWithVideoId:videoId playerVars:playerVars];



  [[NSNotificationCenter defaultCenter] addObserver:self
                                           selector:@selector(receivedPlaybackStartedNotification:)
                                               name:@"Playback started"
                                             object:nil];


但是,如果我的播放列表中有高清视频,它会给出以下错误和代码 https://github.com/youtube/youtube-ios-player-helper

代码可用于 Git 项目,只需下载它并更改 SingleVideoViewController 中的 videoId。

Decoding failed with error code -1
Decoding: C0 0x01E00168 0x0000304A 0x22111100 0x00000000 6668
Options: 1x-1 [0000002D,01E0010F] 0001C060
Decoding failed with error code 7
Decoding: C0 0x01E00168 0x0000304A 0x22111100 0x00000000 773
Options: 1x-1 [0000002D,01E0010F] 0001C060
Decoding failed with error code -1
Decoding: C0 0x01E00168 0x0000304A 0x22111100 0x00000000 773
Options: 480x360 [FFFFFFFF,FFFFFFFF] 0001C060

【问题讨论】:

你玩的网址是什么?它可能已损坏。 我有一个正在尝试播放的播放列表。我上传的一个视频效果很好,另一个是我从 YOU TUBE 视频 id weRHyjj34ZE 添加的视频 显示您用来配置播放器的代码。 我还没有写新代码,项目示例在 GitHub 上可用,在 SingleViewController 中只需更改视频 id。 添加了答案。你可以看看。 【参考方案1】:

尝试将 origin 参数添加到您的playerVars dictionary,即

NSDictionary *playerVars = @
      @"controls" : @0,
      @"playsinline" : @1,
      @"autohide" : @1,
      @"showinfo" : @0,
      @"modestbranding" : @1,
      @"origin":@"https://www.youtube.com"
  ;

来自YouTube API 文档,

来源: 此参数为 IFrame API 提供额外的安全措施,并且仅支持 IFrame 嵌入。如果您正在使用 IFrame API,这意味着您正在设置 enablejsapi 参数 值为 1,您应该始终将您的域指定为来源 参数值。

您可以阅读更多关于它的信息here。

【讨论】:

添加原点有效。对于某些视频,它需要Origin。我认为很少有视频需要它,无论它是否高清。知道视频上传的哪个设置需要它吗? 上传视频时您在寻找什么设置?

以上是关于YTPlayerView 不在模拟器上播放内容(解码失败,错误代码)的主要内容,如果未能解决你的问题,请参考以下文章

YTPlayerView 控件设置不影响全屏模式

视频不在设备上播放,但在播放 ov 模拟器

通过 iOS (Swift) 中的 AVAudioPlayerNode 播放缓冲区时出现可听故障 *在模拟器中工作,但不在设备上

Flutter_Messaging 不在真正的 Android 手机上播放声音

重新编辑:音频不在真正的 ios 设备中播放,而是在 Swift2 的模拟设备中播放

播放 YouTube 播放器的事件