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 不在模拟器上播放内容(解码失败,错误代码)的主要内容,如果未能解决你的问题,请参考以下文章
通过 iOS (Swift) 中的 AVAudioPlayerNode 播放缓冲区时出现可听故障 *在模拟器中工作,但不在设备上
Flutter_Messaging 不在真正的 Android 手机上播放声音