Html5 video tagının videoadan resim almak için oluşturduğumu fonksiyonda video crossorring değerini anonymous rağmen php tarafından header Access-Control-Allow-Origin:* yapmama rağmen canvas.toDataURL(); hata vermektedir. Bir türlü çözemedim. Yardımcı olursanız, sevinirim. Kolay gelsin...
- <?php
- // Allow from any origin
- header("Access-Control-Allow-Origin: *");
- header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
- ?>
- <!DOCTYPE html>
- <html lang="tr">
- <head>
- <meta charset="utf-8">
- <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <meta name="author" content="Meku">
- <title>Tek Video Gösterimi</title>
- </head>
- <body>
- <div class="previewBox">
- <button id ="posterOlustur">Resim Oluştur</button>
- <div class="preview">
-
- </div>
- </div>
- <!--
- video etiketine crossorigin="anonymous" verdiğim zaman video oynamıyor.
- Vermediğim zaman javascript kodundanki
- img.src = canvas.toDataURL();
- satır çalışmıyor.
- "Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported"
- hatası veriyor.
-
- Access-Control-Allow-Origin:* olması gereliyor fakat
- Yukarıdaki php header fonksiyonun etkisi olmuyor.
- htacces ile denedim Access-Control-Allow-Origin değişmedi.
-
- Kod denemesini localhost ile yapıyorum etkisi varmıdır bilmiyorum.
-
- -->
- <video width="400" controls>
- <source src="https://www.html5rocks.com/en/tutorials/video/basics/devstories.webm" type="video/webm">
- Your browser does not support HTML5 video.
- </video>
-
-
-
- <script type="text/javascript" src="assets/js/jquery.min.js"></script>
- <script>
- $('#posterOlustur').click(function(){
- var
- img= new Image,
- canvas = document.createElement("canvas"),
- ctx = canvas.getContext("2d"),
- video = $('video').get(0);
-
- img.crossorigin ="anonymous";
-
- canvas.width = 320;
- canvas.height = 180;
- ctx.drawImage(video, 0, 0, canvas.width, canvas.height);
-
- img.src = canvas.toDataURL();
- img.onload=function(){
- $('.preview').html(img);
- }
-
-
- });
-
- </script>
- </body>
- </html>