Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed evaluating JavaScript, JavaScript string was: 'play()' #34

Closed
christianwico opened this issue Jun 26, 2019 · 15 comments
Closed

Failed evaluating JavaScript, JavaScript string was: 'play()' #34

christianwico opened this issue Jun 26, 2019 · 15 comments

Comments

@christianwico
Copy link

christianwico commented Jun 26, 2019

Using youtube_player_flutter: ^3.0.0+1.
Platform: iOS | No issues on Android.

Stack trace:

[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: PlatformException(evaluateJavaScript_failed, Failed evaluating JavaScript, JavaScript string was: 'play()'
Error Domain=WKErrorDomain Code=1 "An unknown error occurred" UserInfo={NSLocalizedDescription=An unknown error occurred})
#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)
#1      MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:302:33)
<asynchronous suspension>
#2      MethodChannelWebViewPlatform.evaluateJavascript (package:ytview/src/webview_method_channel.dart:90:21)
#3      WebViewController.evaluateJavascript (package:ytview/ytview.dart:579:39)
#4      YoutubePlayerController._evaluateJS (package:youtube_player_flutter/src/youtube_player.dart:580:30)
#5      YoutubePlayerController.play (package:youtube_player_flutter/src/youtube_player.dart:587:18)
#6      _PlayPauseButtonState.build.<anonymous closure> (package:youtube_player_flutter/src/controls.dart:80:64)
#7      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:511:14)
#8      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:566:30)
#9      GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:166:24)
#10     TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:240:9)
#11     TapGestureRecognizer.acceptGesture (package:flutter/src/gestures/tap.dart:211:7)
#12     GestureArenaManager.sweep (package:flutter/src/gestures/arena.dart:156:27)
#13     _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:225:20)
#14     _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:199:22)
#15     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
#16     _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
#17     _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
#18     _rootRunUnary (dart:async/zone.dart:1136:13)
#19     _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#20     _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
#21     _invoke1 (dart:ui/hooks.dart:233:10)
#22     _dispatchPointerDataPacket (dart:ui/hooks.dart:154:5)

flutter --version:

Flutter 1.5.4-hotfix.2 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 7a4c33425d (8 weeks ago) • 2019-04-29 11:05:24 -0700
Engine • revision 52c7a1e849
Tools • Dart 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)
@rrakeshkumar
Copy link

Hi,
i'm facing the same issue in iOS.
Please provide me solution.

@ghost
Copy link

ghost commented Jul 5, 2019

Same problem here. On iOS device iPhone 6s, iOS 12.

@theolm
Copy link

theolm commented Jul 24, 2019

Same.
Flutter version: 1.7.8+hotfix-3
youtube_player_flutter: ^3.0.0+1
device: iPhone 8 and iPhone X with iOS 12.3.1

@sarbagyastha
Copy link
Owner

Extremely sorry for the late respond, was quite busy since last time I updated the plugin. Will be looking into the issue.

@komaromil
Copy link

on iOs plays only if forceHideAnnotation: false if true, then:

[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: PlatformException(evaluateJavaScript_failed, Failed evaluating JavaScript, JavaScript string was: 'play()'
Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=69, WKJavaScriptExceptionMessage=TypeError: player.playVideo is not a function. (In 'player.playVideo()', 'player.playVideo' is undefined), WKJavaScriptExceptionColumnNumber=21, WKJavaScriptExceptionSourceURL=https://sarbagyadhaubanjar.github.io/youtube_player/player-revised.js, NSLocalizedDescription=A JavaScript exception occurred})
#0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)
#1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:316:33)

#2 MethodChannelWebViewPlatform.evaluateJavascript (package:ytview/src/webview_method_channel.dart:90:21)
#3 WebViewController.evaluateJavascript (package:ytview/ytview.dart:579:39)
#4 YoutubePlayerController._evaluateJS (package:youtube_player_flutter/src/youtube_player.dart:580:30)
#5 YoutubePlayerController.play (package:youtube_player_flutter/src/youtube_player.dart:587:18)
#6 _PlayPauseButtonState.build. (package:youtube_player_flutter/src/controls.dart:80:64)
#7 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:635:14)
#8 _InkResponseState.build. (package:flutter/src/material/ink_well.dart:711:32)
#9 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:182:24)
#10 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:365:11)
#11 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:275:7)
#12 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:455:9)
#13 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:75:13)
#14 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:102:11)
#15 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:218:19)
#16 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:198:22)
#17 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
#18 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
#19 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
#20 _rootRunUnary (dart:async/zone.dart:1136:13)
#21 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
#22 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
#23 _invoke1 (dart:ui/hooks.dart:250:10)
#24 _dispatchPointerDataPacket (dart:ui/hooks.dart:159:5)

@Appstute-Arati
Copy link

I am facing the same issue for iOS.
Please provide solution.
Flutter version: 1.5.4-hotfix.2
Dart version:2.3.0
youtube_player_flutter: ^3.0.0+1
device: iPhone 6 with iOS 12.1.2

@kmcgill88
Copy link

@sarbagyastha, I updated the plugin from v3 to 4.0.0+2 and I am still getting this error on iOS.

[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: PlatformException(evaluateJavaScript_failed, Failed evaluating JavaScript, JavaScript string was: 'play()'
Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=58, WKJavaScriptExceptionMessage=TypeError: player.playVideo is not a function. (In 'player.playVideo()', 'player.playVideo' is undefined), WKJavaScriptExceptionColumnNumber=21, WKJavaScriptExceptionSourceURL=https://sarbagyadhaubanjar.github.io/youtube_player/ios/player.js, NSLocalizedDescription=A JavaScript exception occurred})

@komaromil
Copy link

Same here :-(

@kmcgill88
Copy link

I simplified this and made my own HTML file and ran it locally. The iOS web view still didn't work with the youtube iframe api from their code example. However, if I loaded HTML with an embedded iframe from the share section of youtube.com videos would play just fine. 🤷‍♂

@sarbagyastha
Copy link
Owner

@kmcgill88 @komaromil Could you check if Version 4.1.0 fix it?

@kmcgill88
Copy link

@sarbagyastha I got it to play once but the performance was awful! It still crashes a majority of the time. I tested on real iPhone and Simulator. I also confirmed it works on Android Emulator.

@buncis
Copy link

buncis commented Aug 14, 2019

@sarbagyastha I'm using 4.10

and still go this error on iphone

JavaScript string was: 'play()'
Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=58, WKJavaScriptExceptionMessage=TypeError: undefined is not an object (evaluating 'player.playVideo'), WKJavaScriptExceptionColumnNumber=11, WKJavaScriptExceptionSourceURL=https://sarbagyadhaubanjar.github.io/youtube_player/ios/player.js, NSLocalizedDescription=A JavaScript exception occurred}

@HardikDG
Copy link

Any update on this?
Facing same issue

@telinx
Copy link

telinx commented Sep 19, 2019

same issue

@sarbagyastha
Copy link
Owner

Check #79

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants