рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ
рдореИрдВрдиреЗ рдРрдк рдореЗрдВ рд▓рд╛рдЧреВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдЕрд╕реАрдорд┐рдд рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ, рдбреАрдмрдЧ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдВрджреЗрд╢ рд╣реИ
W/System (14804): A resource failed to call release
рдкреНрд░рдЬрдирди рдХрд░рдирд╛
initState()
. рдореЗрдВ рдЕрдкрдиреЗ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ
_controller = YoutubePlayerController(
initialVideoId: 'iLnmTe5Q2Qw',
flags: YoutubePlayerFlags(
forceHideAnnotation: true
),
);
рдФрд░ рдЕрдкрдиреЗ рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реЗрдВ:
YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
progressIndicatorColor: Colors.amber,
onReady: () {
print('Player is ready.');
},
),
рдЕрдкреЗрдХреНрд╖рд┐рддреН рд╡реНрдпрд╡рд╣рд╛рд░
рдПрдХ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдпреВрдЯреНрдпреВрдм рд╡реАрдбрд┐рдпреЛ рдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕реЗ рдЦреЗрд▓рдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП
рдЯреЗрдХреНрдирд┐рдХрд▓ рдбрд┐рдЯреЗрд▓:
рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрджрд░реНрдн
рдореИрдВрдиреЗ рдЗрд╕ рдмрдЧ рд░рд┐рдкреЛрд░реНрдЯ рдХреА рдЬрд╛рдБрдЪ рдХреА: https://github.com/flutter/flutter/issues/24565
рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдирд┐рдпрдВрддреНрд░рдХ рд╡рд╣реА рд╕рдВрджреЗрд╢ рднреЗрдЬ рд░рд╣рд╛ рд╣реИред
рд╡рд┐рдЬреЗрдЯ рдЯреНрд░реА рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
Scaffold
|-> SingleChildScrollView
|-> Column
|-> YoutubePlayer
рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг рдбрд┐рдмрдЧ рдХрдВрд╕реЛрд▓:
D/EGL_emulation(14804): eglMakeCurrent: 0xe7195440: ver 3 1 (tinfo 0xe715fcd0)
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 2 (2) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 0 (0) 0 0
D/EGL_emulation(14804): eglCreateContext: 0xd2bf3640: maj 3 min 0 rcv 3
D/EGL_emulation(14804): eglMakeCurrent: 0xd2bf3640: ver 3 0 (tinfo 0xd0257060)
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 1 (1) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 2 (2) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 1 (1) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 2 (2) 0 0
D/eglCodecCommon(14804): setVertexArrayObject: set vao to 1 (1) 0 0
W/System (14804): A resource failed to call release.
I/flutter (14804): The controller is not ready for method calls.
рд╡рд╣реА рдореБрджреНрджрд╛ред рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рдпрд╛ рдХрд╛рдордХрд╛рдЬ?
рдореЗрд░реЗ рд╕рд╛рде рднреА рд╡рд╣реА рджрд┐рдХреНрдХрдд рд╣реИред рд╡реАрдбрд┐рдпреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред
рдпрд╣ рд░рд┐рд▓реАрдЬ рдмрд┐рд▓реНрдб рдореЗрдВ рдХреЗрд╡рд▓ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╣реЛрддрд╛ рд╣реИред
рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ (рдбреАрдмрдЧ) рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдФрд░ рдЖрдИрдУрдПрд╕ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ (рдбреАрдмрдЧ) рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ (рд░рд┐рд▓реАрдЬ) рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдбрд┐рд╡рд╛рдЗрд╕: рд╕реИрдорд╕рдВрдЧ рдЧреИрд▓реЗрдХреНрд╕реА рдП6
рдПрдВрдбреНрд░реЙрдЗрдб: 9 (рдкрд╛рдИ)
рд╕реНрдкрдВрджрди 1.12.13+рд╣реЙрдЯрдлрд┐рдХреНрд╕.9
youtube_player_flutter: ^6.1.0+7
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╢реЛрд╕реНрдЯреЙрдкрд░ рд╣реИ рдФрд░ рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп Flutter_youtube_view рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рджреЗрддрд╛ рд╣реИ...
рдареАрдХ рд╣реИ, рдХреБрдЫ рдФрд░ рдЬрд╛рдБрдЪ-рдкрдбрд╝рддрд╛рд▓ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдкрддрд╛ рдЪрд▓рд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рд╕реНрдкрдВрджрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж Android рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╣рд╛рде рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ -> рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпреВрдЯреНрдпреВрдм-рдкреНрд▓реЗрдпрд░ рд╕реНрд░реЛрдд-рдлрд╝рд╛рдЗрд▓ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред AndroidManifest.xml рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛ рдЧрдпрд╛:
<uses-permission android:name="android.permission.INTERNET"/>
рдЗрд╕ рдкрд░ рдорд┐рд▓рд╛ рд╕рдорд╛рдзрд╛рди: рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░, рдлрд╝реНрд▓рдЯрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдРрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдареАрдХ рд╣реИ, рдХреБрдЫ рдФрд░ рдЬрд╛рдБрдЪ-рдкрдбрд╝рддрд╛рд▓ рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдкрддрд╛ рдЪрд▓рд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдирдпрд╛ рд╕реНрдкрдВрджрди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж Android рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЛ рд╣рд╛рде рд╕реЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреЛрдИ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ -> рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдХреЛрдИ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпреВрдЯреНрдпреВрдм-рдкреНрд▓реЗрдпрд░ рд╕реНрд░реЛрдд-рдлрд╝рд╛рдЗрд▓ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред AndroidManifest.xml рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╣рд▓ рд╣реЛ рдЧрдпрд╛:
<uses-permission android:name="android.permission.INTERNET"/>
рдЗрд╕ рдкрд░ рдорд┐рд▓рд╛ рд╕рдорд╛рдзрд╛рди: рд╕реНрдерд╛рдкрд┐рдд рд╣реЛрдиреЗ рдкрд░, рдлрд╝реНрд▓рдЯрд░ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдРрдк рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдЕрднреА рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдореЗрд░реЗ рд▓рд┐рдП рдЖрдИрдУрдПрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред 6.1.0+7 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
рдПрдХ рдФрд░ рдиреЛрдЯ рдпрджрд┐ рдЖрдк рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рдЕрдирдВрдд рд▓реЛрдб рдХреЗ рджреМрд░рд╛рди рдлреБрд▓рд╕реНрдХреНрд░реАрди рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ рдЕрдорд╛рдиреНрдп рд╡реАрдбрд┐рдпреЛ рдЖрдИрдбреА = рддреНрд░реБрдЯрд┐ рдХреЛрдб: 1
рдореЗрд░реА рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рдереАред
рдЙрджрд╛рд╣рд░рдг рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдореМрдЬреВрджрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЕрдирдВрдд рд▓реЛрдбрд┐рдВрдЧ рд╣реЛрддреА рд╣реИред
рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдорд╕реНрдпрд╛ webview_flutter рдХреЗ рдХрд╛рд░рдг рд╣реБрдИ: ^0.3.20+2
рдореЗрд░реЗ рдкрдмрд╕реНрдкреЗрдХ рд╕реЗ рдЗрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╡реАрдбрд┐рдпреЛ рдЖрдИрдбреА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реА рдереАред x рджрд┐рдиреЛрдВ рдореЗрдВ рдкреНрд░реАрдорд┐рдпрд░ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВред рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдпреВрдЯреНрдпреВрдм рдкреНрд▓реЗрдпрд░ рдпрд╣ рдХрд╣рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдЙрд╕ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдкреНрд░реАрдорд┐рдпрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
рдЖрдИрдУрдПрд╕ 9.3.5 рдХреЗ рд╕рд╛рде рдЖрдИрдкреИрдб 3 рдкрд░ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рднреА рдореЗрд░реА рдорджрдж рдирд╣реАрдВ рдХреА
v7.0.0.0 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
v7.0.0.0 рдХреЗ рд╕рд╛рде рдареАрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдореИрдВ 7.0.0+3
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рд╡реАрдбрд┐рдпреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдирдВрдд рд▓реЛрдбрд┐рдВрдЧ рдЕрднреА рднреА рдореЗрд░реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЕрдирдВрдд рд▓реЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ?
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ Android Pixel 2 XL рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╣реИред рдЕрдЧрд░ рдореИрдВ v6.1.1 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╡реАрдбрд┐рдпреЛ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред
рдорд┐рдирдПрд╕рдбреАрдХреЗрд╕рдВрд╕реНрдХрд░рдг 21
рдореИрдВ webview_flutter рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ред
рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ:
_controller = YoutubePlayerController(
initialVideoId: videoID,
flags: YoutubePlayerFlags(
mute: false,
enableCaption: false,
autoPlay: false,
),
);
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ Android Pixel 3 рдкрд░ рд╣реИред рд╡реАрдбрд┐рдпреЛ рд▓реЛрдб рд╣реЛрддрд╛ рд░рд╣рддрд╛ рд╣реИ, рдпрд╣ iOS рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдореБрд▓реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╣реИ ?? рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ рдЕрд╕рд▓реА рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ?
рдХреЛрдИ рднреА рдЕрдкрдбреЗрдЯ рдорджрдж рдХрд░реЗрдЧрд╛ред
рд╢реБрдХреНрд░рд┐рдпрд╛ред
рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рдЕрдиреБрднрд╡ред
рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реАрдбрд┐рдпреЛ рдЕрдЪреНрдЫрд╛ рдЪрд▓рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд▓реЛрдбрд░ рд╡реАрдбрд┐рдпреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдиреАрдЪреЗ рдмрд╛рдИрдВ рдУрд░ рдШреВрдорддрд╛ рд░рд╣рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛?
6.1.1 рдкреИрдХреЗрдЬ рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░реЗрдВ
рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @ рдЬрд┐рдЧрд░рдХреЛрдЯрдХ 7, рдореИрдВрдиреЗ рдЗрд╕реЗ v6.1.1 рдкреИрдХреЗрдЬ рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ @Gunlek рд╡рд┐рдЪрд╛рд░ рдХреЛ Define your controller in initState()
рдкрд░ рдЖрдЬрд╝рдорд╛рдпрд╛ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░ рдЧрдпрд╛, рдпрд╣ рдореЗрд░рд╛ рдХреЛрдб рд╣реИ:
class AboutTopic extends StatefulWidget {
final String videoLink;
AboutTopic({this.videoLink});
<strong i="9">@override</strong>
_AboutTopicState createState() => _AboutTopicState();
}
class _AboutTopicState extends State<AboutTopic> {
YoutubePlayerController _controller;
<strong i="10">@override</strong>
void initState() {
_controller = YoutubePlayerController(
initialVideoId:
YoutubePlayer.convertUrlToId(widget.videoLink),
flags: YoutubePlayerFlags(
mute: false,
autoPlay: true,
disableDragSeek: true,
loop: false,
enableCaption: false),
);
super.initState();
}
<strong i="11">@override</strong>
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('About'),
centerTitle: true,
leading: IconButton(
icon: Icon(Icons.arrow_back),
onPressed: () {
Navigator.of(context).pop();
},
)
),
body: YoutubePlayer(
controller: _controller,
showVideoProgressIndicator: true,
bottomActions: <Widget>[
const SizedBox(width: 14.0),
CurrentPosition(),
const SizedBox(width: 8.0),
ProgressBar(isExpanded: true),
RemainingDuration(),
],
aspectRatio: 4 / 3,
progressIndicatorColor: Colors.white,
onReady: () {
print('Player is ready.');
},
),
);
}
}
@ рд╣рд╛рд░реНрджрд┐рдХ рд╣реИрдкреНрдкреА рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдореЗрдВ рдореЗрд░реЗ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдРрдк рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ YouTube рдкреНрд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рддреЛ рдЕрдЧрд░ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред
https://www.youtube.com/watch?v=O3dy9p4ybes
@ рд╣рд╛рд░реНрджрд┐рдХ рд╣реИрдкреНрдкреА рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд▓рд┐рдВрдХ рдореЗрдВ рдореЗрд░реЗ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдП рдЧрдП рдРрдк рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВрдиреЗ YouTube рдкреНрд▓реЗрдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред рддреЛ рдЕрдЧрд░ рдЖрдкрдХреЗ рдХреЛрдИ рдкреНрд░рд╢реНрди рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред
https://www.youtube.com/watch?v=O3dy9p4ybes
рдореБрдЭреЗ рд╡реАрдбрд┐рдпреЛ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рднреА рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖ рд░рд╣реА рд╣реИрдВ, рдпрд╣ рдЕрд╕реАрдо рд░реВрдк рд╕реЗ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпреЛрдВ
рднреА рд╡рд╣реА рд╕рдорд╕реНрдпрд╛
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдЕрдирдВрдд рд▓реЛрдбрд┐рдВрдЧ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдпрд╣ рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЕрд╕рд▓реА рдбрд┐рд╡рд╛рдЗрд╕ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ
рдЕрд░реЗ @santhoshisrimanthula
рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдорджрджрдЧрд╛рд░ рд╣реИред рдореИрдВ рдЖрдкрдХреА рд╣рддрд╛рд╢рд╛ рдХреЛ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ lolред
рдЗрд╕рд▓рд┐рдПред рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреБрдЫ рдлреЛрди рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдиреНрдп рдлреЛрди рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд░реНрдЬрди рд╕реЗ рдХреБрдЫ рд▓реЗрдирд╛-рджреЗрдирд╛ рд╣реИ
рдореИрдВрдиреЗ youtube_player_flutter: ^6.1.1
. рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛
рдореЗрд░реЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдбрд┐рдмрдЧ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдЕрдиреБрдорддрд┐ рдереАред рдореБрдЦреНрдп рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рдЕрдиреБрдорддрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░реЗ рд▓рд┐рдП рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ Android Pixel 2 XL рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╣реИред рдЕрдЧрд░ рдореИрдВ v6.1.1 рдкрд░ рдбрд╛рдЙрдирдЧреНрд░реЗрдб рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рд╡реАрдбрд┐рдпреЛ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред
рдорд┐рдирдПрд╕рдбреАрдХреЗрд╕рдВрд╕реНрдХрд░рдг 21
рдореИрдВ webview_flutter рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ред
рдЖрд░рдВрднреАрдХрд░рдг рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИ: