Pixi.js: videoTexture.source.play() рдиреЗ IOS рдкрд░ рдлреБрд▓рд╕реНрдХреНрд░реАрди рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рдЕрдХреНрддреВре░ 2016  ┬╖  25рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pixijs/pixi.js

@englercj рдХрд▓ рдХреЗ
рдпрд╣ #dev рд╢рд╛рдЦрд╛ рдкрд░ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдкреГрд╖реНрда рдкрд░ рдХреЛрдИ рдСрдЯреЛрдкреНрд▓реЗ рдпрд╛ рдХреБрдЫ рднреА рдЫрд┐рдкрд╛ рд╣реБрдЖ рдПрдХ рд╡реАрдбрд┐рдпреЛ рддрддреНрд╡ рдирд╣реАрдВ рд╣реИред

рдореИрдВ рдХреИрдирд╡рд╛рд╕ рдмрдирд╛рддрд╛ рд╣реВрдВ рдФрд░ рдЖрдЧреЗ рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рдбреЗрд╕реНрдХрдЯреЙрдк/рдПрдВрдбреНрд░реЙрдЗрдб рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдЬрдм рдореИрдВ videoTexture.source.play() рджрдмрд╛рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдЖрдИрдУрдПрд╕ 9 рдкрд░ рдПрдлрдПрд╕ рдЦреЛрд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рдПрдиреАрдореЗрд╢рди рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рд╡реАрдбрд┐рдпреЛ рдлреНрд░реЗрдо рдХреЛ рдЪрд░рдгрдмрджреНрдз рдХрд░рдирд╛ рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рд╣реИред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдкрд┐рдХреНрд╕реАрдЬ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдзрдиреНрдпрд╡рд╛рджред

ЁЯСН Not A Bug ЁЯТ╛ v4.x (Legacy) ЁЯУв Accepting PRs ЁЯХ╖ Bug

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдУрдПрдордПрдлрдЬреА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп! рдЬреЛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рдПрдлрдПрдордПрд▓ рдЬреА рд╢реБрдХреНрд░рд┐рдпрд╛ред

рд╕рднреА 25 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЕрдм рдЬрдм рдореИрдВрдиреЗ рд╕рдорд╕реНрдпрд╛ рд╕реВрдЪреА рдХреЛ рджреЗрдЦрд╛, рддреЛ рдХреНрдпрд╛ рдпрд╣ #3078 рдХреЗ рд╕рдорд╛рди рд╣реИ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ 3066 рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реИред

рдЙрд╕ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (https://github.com/bfred-it/iphone-inline-video) ios 9 рдкрд░ рдЕрдкрдиреЗ рдЖрдк рдЗрдирд▓рд╛рдЗрди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ videoTexture рдЖрдХрд░реНрд╖рд┐рдд рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ ios9 рдкрд░ рдлреНрд░реЗрдоред рд╡рд╣ lib рдПрдХ рдЕрдиреБрд░реЛрдз рдПрдиреАрдореЗрд╢рди рдлреНрд░реЗрдо рдХреЙрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдлреНрд░реЗрдо рджреНрд╡рд╛рд░рд╛ рд╡реАрдбрд┐рдпреЛ рдлреНрд░реЗрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрджрдо рдЙрдард╛рддрд╛ рд╣реИред

рд╣рд╛рдВ рджрд┐рд▓рдЪрд╕реНрдкред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрдард┐рди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ iOS рдбрд┐рд╡рд╛рдЗрд╕ рдирд╣реАрдВ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЕрдиреНрдп рджреЗрд╡реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕реЗ рдЬрд▓реНрдж рд╣реА рдЦрдЯрдЦрдЯрд╛рдПрдЧрд╛!

@ pr1ntr рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдзрд╛рдЧреЗ рдкрд░ рдореИрдВрдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ ios9 рдФрд░ рдЕрдВрдбрд░ рдлреБрд▓ рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдП рдмрд┐рдирд╛ рд╡реАрдбрд┐рдпреЛ рдирд╣реАрдВ рдЪрд▓рд╛ рд╕рдХрддреЗред рдпрд╣ рдЗрд╕ рдмрд╛рдд рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдХрд┐ Apple рдиреЗ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ред

рдЕрдм, рдпрд╣ рдерд░реНрдб рдкрд╛рд░реНрдЯреА рдкреЙрд▓реАрдлрд┐рд▓ рд▓рд┐рдм рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЪрддреБрд░ рд╢реАрдирд┐рдЧрдиреНрд╕ рдХрд░рддрд╛ рд╣реИред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдпрд╣ PIXI рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдХрднреА рднреА PIXI рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред

рд▓реЗрдХрд┐рди .... рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдУрдПрд╕ рд╡рд░реНрдЬрди рдХреЗ рдЖрдИрдлрд╝реЛрди рд╕реЗ рдШреЗрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдХрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдирд╛рдЯрдХ рдХрд░реВрдВрдЧрд╛ред рдореИрдВ рдХрд┐рд╕реА рднреА рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ рдкрд╛рд╕ рд╡рд╛рдкрд╕ рдЖрдКрдВрдЧрд╛ :)

рдирдорд╕реНрддреЗ, рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡реНрдпрд╡рд╣рд╛рд░ рдореИрдВ рдЦреЛрдЬ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдмрдирд╛рд╡рдЯ рдкрд░ рдЕрджреНрдпрддрди рдЕрджреНрдпрддрди рдирд╣реАрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдпрджрд┐ рд╡реАрдбрд┐рдпреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдЕрдкрдиреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдлрд╛рдпрд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЬрд┐рд╕ рдкреЙрд▓реАрдлрд┐рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╕рднреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдлрд╛рдпрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд╡реАрдбрд┐рдпреЛ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рд╡реВрдбреВ requestAnimationFrame рдЯрд┐рдХ рд╣реИред рдХреЗрд╡рд▓ <video> рдЯреИрдЧ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдмрдЧ рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░реНрдг рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рдирд╣реАрдВ рд╕реБрдирддрд╛ рд╣реИред рдореИрдВ рд╕реНрд░реЛрдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдЗрддрдирд╛ рд╕рдордп рдФрд░/рдпрд╛ рд╕рдВрджрд░реНрдн рдХрд╛ рдврд╛рдВрдЪрд╛ рдирд╣реАрдВ рдерд╛ред

рдореИрдВ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдбрдкреЗрди рдкрд░ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдХреНрдпрд╛ рдпрд╣ рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛?

рдпрджрд┐ рдЖрдк рдХреБрдЫ рдФрд░ рдорд┐рдирдЯреЛрдВ рдХреЗ рд▓рд┐рдП рд░реБрдХрддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ :)

рдорд┐рдард╛рдИ!

var renderer = PIXI.autoDetectRenderer(window.innerWidth, window.innerHeight, { transparent: true });
document.body.appendChild(renderer.view);

// create the root of the scene graph
var stage = new PIXI.Container();

// create a video texture from a path
var texture = PIXI.Texture.fromVideo('video.mp4');
texture.baseTexture.autoPlay = false;
makeVideoPlayableInline(texture.baseTexture.source, false);

window.document.addEventListener( 'mousedown', function() {
    texture.baseTexture.source.play();
});

window.document.addEventListener( 'touchstart', function() {
    texture.baseTexture.source.play();
});

var videoSprite = new PIXI.Sprite(texture);
videoSprite.width = renderer.width;
videoSprite.height = renderer.height;
stage.addChild(videoSprite);

animate();

function animate(){
    requestAnimationFrame(animate);

    // render the stage
    renderer.render(stage);
}

рддреЛ, рдЙрдкрд░реЛрдХреНрдд рдореЗрд░реЗ рд▓рд┐рдП ios8 рдФрд░ ios9 рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ, рдЬрдм рдЖрдк 'makeVideoPlayableInline' рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЖрдк 'рдЧрд▓рдд' рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рддреЗ рд╣реИрдВред рдХрд╣рдиреЗ рдХрд╛ рддрд╛рддреНрдкрд░реНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдХреЛрдИ рдЖрд╡рд╛рдЬ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдХрдорд╛рддреНрд░ рддрд░реАрдХрд╛ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдореИрдВ рдЗрд╕ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЗ рд╕рд╛рде PIXI рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╡реНрдпрд╛рдкрд╛рд░ рдмрдВрдж рд╣реИ!

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХреБрдВрдЬреА рд╡рд╣ рд╡реАрдбрд┐рдпреЛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдСрдбрд┐рдпреЛ рдмрд┐рд▓реНрдХреБрд▓ рди рд╣реЛред рдореИрдВ рдЭреВрдареА рдЖрдкреВрд░реНрддрд┐ рдХрд░ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдСрдбрд┐рдпреЛ рдЯреНрд░реИрдХ рд╣реИред рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рдСрдбрд┐рдпреЛ рдерд╛ред рд╣рдо рдЬреЛ рдРрдк рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдкреБрди: рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рджреЗрдВ рдФрд░ рдореИрдВ рд╡рд╛рдкрд╕ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдХрдИ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдСрдбрд┐рдпреЛ рд╣реИ рдпрд╛ рдирд╣реАрдВред 'false' рдХреЛ 'makeVideoPlayableInline' рдореЗрдВ рдкрд╛рд╕ рдХрд░рдХреЗ, рд╡реАрдбрд┐рдпреЛ рдЗрдирд▓рд╛рдЗрди рдЪрд▓реЗрдЧрд╛ред

рд╕рд╣реА рдореИрдВ рдЭреВрдард╛ рдЧреБрдЬрд░ рд░рд╣рд╛ рд╣реВрдБред рд▓реЗрдХрд┐рди рдореИрдВ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдХрд╣реАрдВ рдФрд░ рд▓рдкреЗрдЯ рд░рд╣рд╛ рд╣реВрдВред

рдпрд╣ рдореЗрд░рд╛ рд╡реАрдбрд┐рдпреЛ рдШрдЯрдХ _рдЪреЗрддрд╛рд╡рдиреА_ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╣реИред
https://gist.github.com/pr1ntr/8511ede7068eac180f515a18ddf75a89#file -connectvideo-js-L52
рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рдЗрдирд▓рд╛рдЗрди рдкреЙрд▓реАрдлрд┐рд▓ (рд▓рд╛рдЗрди 52) рдЪрд▓рд╛рддрд╛ рд╣реИ
рд▓рд╛рдЗрди 60 рдпрд╣ рдПрдХ рддреИрдпрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдкрдиреЗ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛ PixiVideoWrapper рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИ
рдпрд╣ рдпрд╣рд╛рдБ рд╣реИ:
https://gist.github.com/pr1ntr/57032704841e471c3a145308072f3ee2#file -game-js-L37

рдлрд┐рд░ рдПрдХ рдмрд╛рд░ рдЬрдм PixiVideoWrapper рдорд╛рдЙрдВрдЯ рдХрд░рддрд╛ рд╣реИ рддреЛ рдпрд╣ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЪреАрдЬреЗрдВ рдХрд░рддрд╛ рд╣реИ:
https://gist.github.com/pr1ntr/3a44f327406d5d5a97824c47d6194484#file -pixivideowrapper-js-L118

рддреЛ Game.js рдореЗрдВ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рдЯреИрдк рдХрд┐рдпрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рд╡реАрдбрд┐рдпреЛ рдХреЛ PixiVideoWrapper рд▓рд╛рдЗрди 81 рдореЗрдВ рд▓рд╛рдЗрди 121 componentWillReceiveProps рдорд╛рдзреНрдпрдо рд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЕрдЧрд░ рдореИрдВ display:none рд╣рдЯрд╛ рджреВрдВ рддреЛ рдореИрдВ рдЗрдирд▓рд╛рдЗрди рд╡реАрдбрд┐рдпреЛ рдкреНрд▓реЗ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рдХреНрдпрд╛ рдЖрдк рднреА рдирд╡реАрдирддрдо #dev рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рд╣рд╛рдБ

рдирд╡реАрдирддрдо рджреЗрд╡ рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рдпрд╛ рддреЛ рдЖрдзрд╛рд░ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА рд╣реИ рдпрд╛ рдЗрд╕рдореЗрдВ рдЙрди рд╡реАрдбрд┐рдпреЛ рдХреЗ рд▓рд┐рдП рдЗрдирд▓рд╛рдЗрди рдЯреИрдЧ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рдирдХреА ios10 рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

рдареАрдХ рд╣реИ рддреЛ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдбреАрдУрдПрдо рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдХрд╣рд╛рдВ рд╣реИ? рдпрд╣ рднреА рдХреНрдпрд╛ рдмрдЯрди рд╣реИ рдЬрд┐рд╕реЗ HOOK DIV рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ? рдпрд╣ рдЕрдЬреАрдм рд╣реИред рдЕрдЧрд░ рд╡реАрдбрд┐рдпреЛ рдкрд╣рд▓реЗ рд╕реЗ рдкреЗрдЬ рдкрд░ рдореМрдЬреВрдж рд╣реИ рддреЛ рдЗрд╕рд╕реЗ рдлрд░реНрдХ рдХреНрдпреЛрдВ рдкрдбрд╝реЗрдЧрд╛?

рдЖрдзрд╛рд░ рд╡реАрдбрд┐рдпреЛ рдмрдирд╛рд╡рдЯ рдмрдирд╛рддреЗ рд╕рдордп, рдпрджрд┐ рд╕реНрд░реЛрдд рдПрдХ рдкреНрд░рддреНрдпрдХреНрд╖ рд╡реАрдбрд┐рдпреЛ рд╣реИ, рддреЛ рдпрд╣ рд╕реНрд╡рдпрдВ html рд╡реАрдбрд┐рдпреЛ рдЯреИрдЧ рдмрдирд╛рдПрдЧрд╛ред рд╢рд╛рдпрдж рдпрд╣реАрдВ рдлрд░реНрдХ рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдИрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдЗрд╕рдХреЗ рд╕рд╛рде рдлрд┐рд░ рд╕реЗ рдЦреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреБрд░реБрд╡рд╛рд░ рддрдХ ios рдЙрдкрдХрд░рдгреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реЛрдЧреА рдореБрдЭреЗ рдбрд░ рд╣реИ

рдХреНрдпрд╛ рдЖрдк рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдирд╣реАрдВ, рдореИрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рдерд╛ред

рдирдорд╕реНрддреЗ
рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреБрдирд┐рдпрд╛рджреА рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдЕрдкрдирд╛ рд╡реАрдбрд┐рдпреЛ рддрддреНрд╡ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред рдпрд╣ ios9 рдкрд░ рдирд╣реАрдВ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдЬрдм рдЖрдкрдиреЗ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд░реЛрдд рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдерд╛ рддреЛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

import inlineVideo from 'iphone-inline-video';

var video = document.createElement('video');
video.setAttribute('playsinline','');
video.setAttribute('webkit-playsinline','');

var src = document.createElement('source');
src.setAttribute('src', vidUrl);
src.setAttribute('type', 'video/mp4');

video.appendChild(src);

console.log(video);

// create the root of the scene graph
var stage = new PIXI.Container();

// create a video texture from a path
var texture = PIXI.Texture.fromVideo(video);
texture.baseTexture.autoPlay = false;
inlineVideo(texture.baseTexture.source, false);

window.document.addEventListener( 'mousedown', function() {
    texture.baseTexture.source.play();
});

window.document.addEventListener( 'touchstart', function() {
    texture.baseTexture.source.play();
});

var videoSprite = new PIXI.Sprite(texture);
videoSprite.width = renderer.width;
videoSprite.height = renderer.height;
stage.addChild(videoSprite);

animate();

function animate(){
    requestAnimationFrame(animate);

    // render the stage
    renderer.render(stage);
}

рдореБрдЭреЗ PIXI рдХреЗ рд╕реНрд░реЛрдд рдореЗрдВ рдЕрдВрддрд░ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдкрд╛рдЧрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реВрдБред

рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореИрдВ рдЕрд▓рдЧ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк PIXI рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ url рд╕реЗ рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рд╡реАрдбрд┐рдпреЛ рдЯреИрдЧ рдмрдирд╛рдиреЗ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреЙрд▓ рднреА рдХрд░рддрд╛ рд╣реИ
video.load();
рдЗрд╕рдХреЗ рдареАрдХ рдмрд╛рдж рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
video.appendChild(src);

рдУрдПрдордПрдлрдЬреА рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп! рдЬреЛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рддрд╛ рд╣реИред рдПрдлрдПрдордПрд▓ рдЬреА рд╢реБрдХреНрд░рд┐рдпрд╛ред

рдЗрд╕ рдереНрд░реЗрдб рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд▓реЙрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рдХреГрдкрдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд рдмрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдирдпрд╛ рдореБрджреНрджрд╛ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕