Three.js: Safari/Firefox DOM Exception 18 untuk Tekstur Video Streaming

Dibuat pada 12 Feb 2016  ·  95Komentar  ·  Sumber: mrdoob/three.js

screen shot 2016-02-11 at 5 46 00 pm

https://dl.dropboxusercontent.com/u/1595444/shaka-player/stream-texture.html
(di Chrome, mengeklik putar pada elemen video menunjukkan render terbalik dari video pada elemen kanvas. Di Safari/Firefox texImage2D benar-benar mengecewakan)

Komentar yang paling membantu

Semuanya, lakukan bagian Anda dan yakinkan orang yang Anda kenal untuk berhenti menggunakan perangkat Apple. Beri tahu mereka bahwa Apple adalah IE5 baru.

Semua 95 komentar

Apakah masalah terbalik bagian dari masalah?

screen shot 2016-02-12 at 11 00 53

Terbalik bukan bagian dari masalah. Itu aku yang malas >_<

Saya dapat mereproduksi di sini. Sudahkah Anda mencoba memiliki kanvas di antara?

:+1:, di antara seperti kanvas 2d?

Yap, gunakan kanvas 2d sebagai tekstur dan lakukan drawImage dari video ke sana.

Sepertinya di Safari tidak ada DOM Exception 18 dilempar, tetapi gambarnya tidak ditransfer. Sama dengan Firefox. Apakah itu berarti ini adalah hal implementasi browser?

Menghadapi masalah yang sama. Safari melempar Dom Exception 18, Firefox tidak memuat gambar tetapi juga tidak menunjukkan kesalahan. @jonobr1 apakah Anda mendapatkan kesalahan di firefox?

Tidak ada kesalahan di Firefox, tetapi juga tidak ada gambar. Saya akan mengajukan bug dengan WebKit
dan Mozilla masing-masing dan lihat apakah ada informasi tambahan yang muncul.

Saya tidak tahu tentang kalian, tetapi saya belum melihat demo video streaming
diunggah ke tekstur WebGL. Mungkin ada satu dengan YouTube sebagai sumbernya?
Pada Thu, Feb 11, 2016 at 23:11 Taha Sabih [email protected]
menulis:

Menghadapi masalah yang sama. Safari melempar Pengecualian Dom 18, Firefox tidak
memuat gambar tetapi juga tidak menunjukkan kesalahan. @jonobr1
https://github.com/jonobr1 apakah Anda mendapatkan kesalahan di firefox?


Balas email ini secara langsung atau lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment -183208337.

Streaming video itu sendiri tidak menjadi masalah. Jika Anda membuat elemen video di js dan menggunakan video.src untuk mengatur sumber elemen video, video akan mengalir dengan baik. Streaming adaptif dengan shaka adalah masalah. Saya merasa masalahnya adalah dengan implementasi CORS di webkit dan gecko maka DOM Pengecualian 18 di Safari. Contoh di bawah ini berfungsi sempurna dengan sumber video domain yang sama di semua browser.

            var video = document.createElement( 'video' );
            video.width = 640;
            video.height = 360;
            video.autoplay = true;
            video.loop = true;
            video.src = "<your mp4 source>";

           // adding the line below makes cross origin videos work, but just for chrome
           // video.crossOrigin = 'anonymous';

            var texture = new THREE.VideoTexture( video );
            texture.minFilter = THREE.LinearFilter;

            var material   = new THREE.MeshBasicMaterial( { map : texture } );

            mesh = new THREE.Mesh( geometry, material );

Hanya untuk memperjelas, saya tidak berpikir video.src = "<your mp4 source>"; sedang streaming. Saya percaya ini adalah unduhan progresif . Tapi, ya saya setuju dengan Anda.

Orang-orang masih hanya mengerjakan ini. Ini hanya akan menjadi lebih buruk sekarang orang mencoba melakukan video VR.

Untungnya ada tiket yang dibuka atau jika saya mencoba mengomunikasikannya, saya akan ditutup.

Selama bertahun-tahun Safari memiliki masalah dengan CORS. Ini adalah cacat serius dan mereka telah memperlakukannya dengan penuh penghinaan. Gambar kanvas 2D juga mempengaruhi.

Saya telah membuat tiket dengan Apple secara langsung karena masalah dengan webkit telah ada sejak Juli 2014 belum ditetapkan. Video WebGL pada dasarnya tidak berguna di iOS dan Safari sampai saat itu. Tapi kemudian Iphone memutar video inline juga diperlukan.

Saya percaya mengajukan duplikat dengan Apple dapat membantu mereka mempercepatnya.

Silakan lihat ini. Saya hampir selesai mendapatkan tekstur video dan video 360 bekerja sepenuhnya di Android, Chrome Dev baru saja memperbaiki masalah rendering. Saya harus bekerja tanpa lelah dengan chromium. Sekarang ada masalah kinerja pemutaran video dengan Chrome.

Saya sekarang ke kekacauan ini dengan Safari!

Ini adalah radar tiket apel yang sebenarnya dengan masalah kata demi kata

https://openradar.appspot.com/24641824

https://forums.developer.apple.com/message/113161#113161

Masalah webkit yang sebenarnya. Mereka adalah bagian dari pekerjaan.

https://bugs.webkit.org/show_bug.cgi?id=135379

Pada dasarnya ini tidak ada hubungannya dengan three.js tapi @mrdoob tolong tetap buka ini penting.

Anda perlu melakukan peretasan proxy terbalik yang tidak akan pernah diskalakan seperti dengan gambar kanvas 2D untuk snapshot. Itu didokumentasikan di sini untuk saat ini

https://flowplayer.electroteque.org/snapshot/fp6

location /video/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-NginX-Proxy true;
        proxy_pass //videos.electroteque.org/;
        proxy_redirect off;
    }

Itu akan diteruskan ke cloudfront. Ini akan berfungsi pada video apa pun termasuk HLS.

Tampaknya ini adalah sabotase yang lebih disengaja daripada apa pun untuk memblokir ini di iOS. Firefox di iOS juga tidak memiliki dukungan CORS tanpa alasan sama sekali. Ini menampilkan fitur fallback hack proxy CORS saya. Saya pikir setidaknya Firefox akan berfungsi penuh.

ini masih tidak menjelaskan mengapa desktop firefox tidak dapat menggambar. Ini mengirimkan tajuk Asal, dan jika digunakan tanpa Shaka berfungsi dengan baik. Hanya ketika sumber video dirujuk ke gumpalan (seperti halnya dengan streaming adaptif) ia gagal menggambar gambar. Itu juga melaporkan tidak ada kesalahan yang membuat frustrasi.

Dash berfungsi baik dengan Dash.js dan tekstur video. Tetapi saya akan mengonfirmasi di Windows/OSX setelah saya selesai memfaktorkan ulang perubahannya.

Firefox OSX dan Windows berfungsi penuh. Dengan Dash atau streaming html5 normal.

Selain sebagai berikut:

Saya mendapatkan log ini muncul di OSX dan Windows.

Error: WebGL: Disallowing antialiased backbuffers due to blacklisting.

Saya menjalankan Firefox di Windows 10 di Vmware. Karena itu saya pikir Firefox memblokir Webgl. Itu jatuh kembali ke CanvasRenderer. Saya harus secara khusus mengaktifkan webgl dengan konfigurasi ini.

webgl.force-enabled=true

Anda perlu memeriksa dukungan WebGL dan mundur ke CanvasRenderer tetapi saya tidak percaya itu adalah masalah Anda.

Baik WebGL dan Canvas membutuhkan dukungan CORS untuk bekerja sehingga Firefox dikesampingkan. Ini semua bludger webkit dan Apple sekarang.

FYI seperti inilah tampilan tag video yang saya buat.

Anda memerlukan properti crossorigin yang menjadi keributan dengan Safari. Siapa pun yang mengatakan itu tidak berfungsi di Firefox, itu tidak benar.

Safari telah gagal mengimplementasikannya selama bertahun-tahun dan itulah sebabnya WebGL tidak bekerja dengannya untuk video lintas domain yang memerlukan peretasan proxy terbalik.

Dukungan IE untuk CORS juga cerdik. IE11 juga gagal mengimplementasikannya. Peramban tepi baik-baik saja dengan CORS dan Webgl.

<video crossorigin="anonymous" x-webkit-airplay="allow" preload="auto" webkit-playsinline="true" src="blob:http%3A//localhost%3A8000/8a0dd373-8cb1-4a1d-9ad2-60d0b8f001bf" width="1024" height="512"></video>

Hai @danrossi , suka antusiasmenya! Apakah Anda memiliki contoh online yang berfungsi di dash.js?

Juga, saya mengajukan bug dengan Safari dan Firefox. Anda dapat melihat perkembangan keduanya di sini:

https://bugs.webkit.org/show_bug.cgi?id=154189

https://bugzilla.mozilla.org/show_bug.cgi?id=1248054

Coba dash.js dengan tag video seperti itu. Saya akan mengonfirmasi dengan peretasan proxy jika safari berfungsi dengan tanda hubung.

Saya menyarankan agar Apple terlibat dengan masalah CORS dengan menembakkan tiket duplikat pada masalah CORS dengan mereka seperti yang saya miliki. Maksud saya tiket webkit mungkin ada di sana sejak Juli 2014 tetapi sesuatu yang melumpuhkan seperti ini seharusnya mereka ambil tindakan.

Mengonfirmasi peretasan proxy tidak melakukan apa-apa saat menggunakan MediaSource di Safari, tidak masalah dengan file mp4. Jadi meskipun mereka akhirnya mengimplementasikan CORS, ini akan tetap rusak.

Saya telah meninggalkan komentar di sana dalam masalah webkit, tetapi mengingat tiket utama CORS telah dibiarkan tidak ditetapkan sejak 2014, Safari dan IOS cukup mati untuk VR.

Firefox baik-baik saja untuk saya di Windows 10 dan OSX. Firefox tidak memiliki CORS di iOS jadi tidak berguna di sana. Saya mungkin membuat tiket bagi mereka untuk melakukannya, jadi setidaknya ada sesuatu yang berfungsi di iOS.

Saya telah meninggalkan komentar lain di tiket webkit Anda. Mereka terkait dengan masalah utama CORS dan mungkin harus digabungkan dan ditangani sekaligus.

Apa yang benar-benar membuat saya gila adalah tiket Anda diberikan tetapi tiket untuk masalah CORS yang sebenarnya telah dibiarkan tinggi dan kering selama 2 tahun membuat VR di Safari tidak berguna.

Sekali lagi yang ini tidak ada hubungannya dengan three.js tetapi harus dibiarkan terbuka bagi mereka yang hanya menyadari Safari dan iOS yang diisi.

OK setelah melakukan riset untuk peretasan video sebaris untuk Iphone yang telah saya tambahkan ke tiket Apple, sepertinya menggambar ke kanvas 2D tidak masalah tanpa CORS. Its ketika mencoba untuk mendapatkan data uri dari itu memiliki masalah jadi kesalahan saya. Jadi sepertinya ketika menggunakan WebGL itu juga menjadi masalah karena Safari tidak memiliki dukungan CORS dan harus menggunakan penyaji kanvas sebagai gantinya.

Itu tidak akan atau tidak berkinerja baik di iOS karena menjatuhkan bingkai dan saya yakin itu membutuhkan tag audio yang berjalan untuk memutar audio sehingga tidak akan berfungsi dengan baik untuk mpeg dash.

lihat http://stanko.github.io/html-canvas-video-player/

Untuk mempermudah, saya telah memperbarui contoh webgl mentah ini untuk menggunakan mp4 untuk safari. Saya juga telah memperbarui tiket webkit itu. Itu karena kurangnya dukungan CORS.

https://jsfiddle.net/7t77rz6L/11/

"SecurityError: Pengecualian DOM 18: Upaya telah dilakukan untuk menerobos kebijakan keamanan agen pengguna."

Terima kasih telah berhati-hati dalam melaporkan masalah ini. Saya telah melihat ini di luar three.js juga, dan itu sangat menjengkelkan..!

Apel ! Dibutuhkan gelombang massal tiket duplikat jika memungkinkan. Maksud saya sih Youtube yakin akan diri mereka sendiri dengan dukungan WebGL tetapi Safari tidak akan berfungsi dan tidak berfungsi di pemutar 360 mereka saat ini jadi saya tidak yakin mengapa mereka tidak melakukan apa-apa. Saya telah mengkonfirmasi juga bahkan dengan proxy hack Iphone tidak akan bermain inline sehingga kacamata VR dan VR tidak berguna pada Iphone sepenuhnya. Ini membutuhkan peretasan yang sangat cerdik untuk memutar audio secara terpisah dan memperbarui waktu video untuk mendapatkan bingkai baru sehingga tidak benar-benar memutar video. Itu tidak akan bekerja dengan tanda hubung.

Dan itu bukan masalah hukum dengan hak format menjadi masalah non-teknis yang sebenarnya? Jadi Anda sudah mencoba format lain yang saya asumsikan? webm ogg rupanya ada juga ide Media Source Extensions MSE ada juga pengaturan profil tinggi yang berbeda untuk MP4 H.264 yang tidak berjalan pada perangkat keras (masalah) kelas bawah.
Saya ingat masalah dengan kompatibilitas format video menjadi non-teknis dan lebih banyak lisensi dan legal atau hanya mengontrol masalah aneh.
Pokoknya sangat mengejutkan jadi +1. Saya kira kita selalu bisa memboikot, pada akhirnya tidak ada yang akan menggunakan barang-barang yang tidak berfungsi. Saya menggunakan Android dan Chrome secara eksklusif untuk banyak alasan lain termasuk yang satu ini.

Ini adalah masalah webkit dengan kurangnya fungsionalitas CORS. Mereka telah membiarkannya sia-sia selama bertahun-tahun dengan berpikir mereka bisa lolos begitu saja. Hanya sekarang orang yang mencoba menggunakan Webgl mengalami masalah dan baru sadar. Sebuah kecelakaan menunggu untuk terjadi. Sama halnya dengan memaksa Iphone untuk tidak bermain inline. Video domain yang sama bukanlah penggunaan dunia nyata.

Android Chrome memiliki masalah webgl yang juga dirender ke kanvas. Saya baru saja menghabiskan sebulan penuh berurusan dengan itu dan akhirnya dikonfirmasi dalam tiket bahwa Dev terbaru sekarang bekerja kembali. Setidaknya Android akan bekerja dengan kacamata VR dan WebVR, Iphone tidak.

Saya akan mencoba sekali lagi dengan file dasbor lokal yang dimuat dan melihat apa yang terjadi.

Ada update status pada tiket webkit. Saya percaya mereka harus memperbaiki sesuatu yang lain untuk mengerjakan tiket itu tetapi masih belum ada yang ditugaskan ke tiket bug cors yang sebenarnya. Benar-benar semuanya mengandalkan mereka untuk memperbaikinya dan semoga mendapatkan rilis ke iOS dan safari. Ini seharusnya sangat memalukan bagi apel. Mereka membiarkan ini pergi selama bertahun-tahun tanpa alasan.

@danrossi terima kasih telah membuat kami tetap up to date! 😊

@danrossi kerja yang luar biasa! Terima kasih untuk semua pembaruan

??? Pengembang webkit berfungsi sekarang?

Saya belum melihat pembaruan status mengatakan sebaliknya tetapi kebisingan komit. Saya akan mengkonfirmasi.

ini adalah pembaruan terakhir. Siapa tahu ini benar-benar memperbaiki kurangnya dukungan CORS juga.

https://bugs.webkit.org/show_bug.cgi?id=125157#c29

Siapa yang tahu apakah itu akan berhasil menjadi IOS. Masalah pemutaran video inline iPhone juga menjadi perhatian. Haruskah saya membuat tiket bug lain ke Apple tentang itu?

Oh maaf saya pikir Anda mengatakan itu berhasil hah. Sangat dekat sepertinya. Saya memiliki tiket radar untuk Apple dan mereka tidak pernah menanggapi. Ini membutuhkan duplikat yang dibuat jika mereka ingin mengambil tindakan atau menjaga agar VR berfungsi di platform mereka.

Jadi saya percaya tekanan meningkat di Apple. Mereka menutup tiket saya dengan mengklaim ada duplikat yang tidak dapat Anda lihat atau komentari dan sepertinya tiket yang sangat awal. Tapi itu masih tidak menjelaskan pemutaran video inline Iphone untuk WebGL. Dibutuhkan banyak keluhan bagi mereka untuk memastikan bahwa itu bisa memakan waktu bertahun-tahun.

Saya telah kembali untuk memeriksa dengan orang-orang Chrome dan tampaknya Chrome Dev Android masih rusak saat merender WebGL. Ada beberapa bendera yang dapat diaktifkan untuk menampilkannya tetapi itu akan menyebabkan penurunan frame yang parah.

Peramban Android stok memiliki masalah CORS seperti Safari sehingga tidak berguna. Firefox IOS juga tidak memiliki dukungan CORS dan akan menambahkan tiket untuk mengimplementasikannya. Hal CORS ini melumpuhkan semuanya hanya mengejutkan.

Jadi jika kalian membutuhkan vektor dukungan untuk seluler dengan semua fitur berfungsi. Android Firefox setiap malam karena mereka memperbaiki bug orientasi di sana dan hanya itu. Sangat sedih.

Jika tertarik, saya telah secara resmi membuat tiket di sini sehingga setidaknya Firefox di iOS mungkin memiliki WebVR yang berfungsi dan melupakan Safari. Saya belum mengkonfirmasi apakah itu dapat memutar video inline di Iphone. Mereka mungkin lebih cepat bertindak atas dukungan CORS tetapi ternyata tidak.

https://bugzilla.mozilla.org/show_bug.cgi?id=1256083

Mengkonfirmasi mekanisme penonaktifan Apple memaksa video menjadi pemutar asli untuk Firefox juga. Sabotase yang disengaja dari kelihatannya.

ini juga tidak menampilkan apa pun di kanvas di firefox di mac (berfungsi di chrome), bukan masalah ios.

oh, ff mulai menunjukkan gambar setelah sekitar 2:50

Jangan salah paham di sini. Ini adalah masalah CORS yang semuanya berkaitan dengan IOS/Safari. Saya tidak tahu apa-apa tentang contoh tanda hubung itu tetapi saya telah menguji Dash dengan tekstur video di Firefox di OSX dan itu baik-baik saja.

Dengan Dash di Firefox, tampaknya ada masalah dengan segmen yang Anda buat saat Anda memproses file video agar kompatibel dengan dash. Tidak mengelompokkan file tampaknya berfungsi di Firefox (mungkin juga menjelaskan mengapa beberapa detik terakhir video tersegmentasi diputar).

Pada 13 Mar 2016, pukul 21:51, danrossi [email protected] menulis:

Jangan salah paham di sini. Ini adalah masalah CORS yang semuanya berkaitan dengan IOS/Safari. Saya tidak tahu apa-apa tentang contoh tanda hubung itu tetapi saya telah menguji Dash dengan tekstur video di Firefox di OSX dan itu baik-baik saja.


Balas email ini secara langsung atau lihat di GitHub.

Ini adalah file paket saya yang telah saya uji dengan three.js. Saya menggunakan bento4. interval keyframe h264 masih (2,3,4) * frame rate seperti HLS. Bukan masalah dengan WebGL. Masalah CORS sangat menjadi masalah untuk Webkit dan Apple dan Firefox di iOS. Anda harus menentukan atribut "crossorigin".

https://videos.electroteque.org/dash/nodrm/bbb/bbb.mpd

Maaf membawa ini ke sini tetapi orang-orang perlu tahu.

Hai teman-teman, saya baru saja menyelesaikan sesuatu yang benar-benar salah dan mundur dan yang sama untuk seluler yang membawa saya ke dunia yang menyakitkan.

Samsung Gear mencoba meluncurkan aplikasinya sendiri dengan browser di S7. Saya meminta seseorang menguji WebGL / WebVR dan ketika memakai kacamata Gear, ia meluncurkan aplikasinya sendiri alih-alih Chrome. Inti dari WebVR adalah meluncurkan kanvas WebGL saat masuk ke layar penuh ke dalam Kacamata.

Jadi yang terjadi adalah tampaknya aplikasi konyol mereka menggunakan kode browser Android stok alih-alih Chrome dan karenanya tidak memiliki dukungan untuk tekstur video WebGL dan video lintas domain dan bahkan api WebVR.

Aplikasi adalah berita lama, mengharapkan seluruh konten diunduh untuk memutarnya. Begitu juga dengan mengunduh file mp4 secara progresif, semuanya streaming tersegmentasi sekarang sehingga modelnya ketinggalan zaman.

Saya baru saja mengetahui bahwa produksi Chrome tampaknya membuat tekstur video WebGL pada S7 tetapi S3 saya benar-benar rusak dan telah mencoba mencari tahu dengan pengembang chrome selama berbulan-bulan.

Tidak tahu apa yang terjadi dengan iOS masih. IOS sama sekali tidak berguna untuk VR saat ini juga. Webkit masih diisi dengan dukungan keamanan lintas domain yang gagal mereka lakukan selama bertahun-tahun membuat VR tidak berguna. Oleh karena itu semua ini di atas.

FYI: komit ini https://github.com/mrdoob/three.js/commit/854ebf5bd6179a3046d4b901b12a9cbc99008c61 memperbaiki masalah untuk Firefox 👍

Hai menurut ini secara sembunyi-sembunyi karena Apple mengabaikan tiket bug saya dan menutupnya, tampaknya Apple telah memperbaikinya tetapi memotong kode yang tampaknya di Safari tetapi di macOS. OS dan browser yang belum pernah digunakan siapa pun.

Jika mereka tidak menggabungkannya kembali ke webkit dan memberikan pembaruan yang ditambal ke browser saat ini, maka orang harus menunggu tetapi masih memberikan cadangan proxy lama.

Ini masih akan rusak untuk Dash meskipun peretasan proxy tidak berfungsi tetapi akan mengonfirmasi lagi.

https://twitter.com/zenoc/status/742770789880111104

Hai teman-teman terima kasih atas semua infonya,

tetapi sebenarnya, jika seseorang dapat menjelaskan secara rinci cara menerapkan 'retas proxy terbalik' yang tercantum di sini:
https://github.com/mrdoob/three.js/issues/8110#issuecomment -183570240

itu akan bagus

terima kasih
Sa'ar

untuk apache

 ProxyPass /video/ //videos.electroteque.org/
    ProxyPassReverse /video/ //videos.electroteque.org/

Untuk nginx

location /video/ {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-NginX-Proxy true;
    proxy_pass //videos.electroteque.org/;
    proxy_redirect off;
    }

Dari apa yang saya kumpulkan, browser webkit saat ini tidak akan pernah melihat perubahan. Mereka akan menyiapkannya untuk mac dan iOS OS yang bahkan tidak dimiliki siapa pun. Mereka masih bermain-main dengan CORS untuk IOS karena "masalah kerangka kerja" menahannya.

Mungkin harus menggunakan solusi Flash jika Stage3D dapat membuat perangkat keras dipercepat tetapi tidak menyukainya. Itu terus-menerus menggambar bitmapdata.

terima kasih atas balasannya yang cepat

ok, jadi belum ada solusi untuk saya, sampai Apple memperbaikinya.

Bagaimana dengan menangkap "DOM Exception 18" untuk opsi fallback? Bagaimana saya bisa menangkapnya?

Saya mencoba meletakkannya di panggilan render() dari objek THREE.WebGLRenderer tetapi tidak tertangkap.

Anda melakukan deteksi pada video temp. yaitu

testVideo.hasAttribute("crossOrigin")

Anda juga bisa melakukan deteksi browser saja. Safari dan IE 11.

Hanya kepala tentang masalah gila ini. Saya belum bisa menguji mode VR di IOS kecuali saya menyebarkan ke Ipad saya.

Aplikasi Cordova menggunakan WebView. Ini memiliki opsi untuk bermain inline sehingga mengatasi masalah sial itu. Ini bekerja di sekitar interaksi pengguna. Yang ini adalah yang paling gila dari semuanya dan telah membuatku gila.

WebView tampaknya bekerja di sekitar CORS sepenuhnya bahkan jika itu adalah file html lokal yang berjalan di file://. WebGL bekerja di aplikasi Cordova tanpa memerlukan atribut crossorigin. Ini mengejutkan sekaligus kabar baik. Itu tidak memerlukan peretasan proxy tetapi Safari IOS/OSX akan melakukannya.

Saya tidak dapat memeriksa kontrol orientasi VR semu tetapi kontrol sentuh berfungsi, begitu juga efek stereo kardus lama. Saya akan memperbarui tiket Webkit itu.

Pengujian di Android adalah masalah karena bug rendering Chrome yang saya habiskan selama 3 bulan mencoba membuat orang-orang Chromium memperbaiki dan menyerah. Sayangnya, ini benar-benar hitam dan semoga bukan masalah CORS yang tidak menunjukkan kesalahan.

jadi apakah saya mendapatkan ini dengan benar? itu MASIH satu-satunya cara untuk menggunakan tekstur video webgl dengan webgl dengan menerapkan peretasan proxy itu di server?

Safari sepenuhnya dan benar-benar kacau dan begitu juga IOS. Jika Anda menggunakan aplikasi berbasis Cordova WebView, Anda dapat memainkan inline, putar otomatis dan jangan tanya mengapa tetapi CORS tidak menjadi masalah. Itu untuk mp4 / HLS di iOS.

Tapi seperti yang saya laporkan dan temukan. Mereka mencekik perangkat yang lebih tua dan memperlambatnya untuk memaksa orang meningkatkan versi. Ipad 3 tidak berguna untuk WebGL dan dirender kembali pada 5fps. Perlu perangkat yang lebih baru.

Di Safari di OSX, sumber media sepenuhnya dan benar-benar ditutup-tutupi. proksi CORS tidak berfungsi di sana. Itu harus berupa file mp4 atau HLS asli juga. Dengan HLS asli Anda memberikan url proxy CORS.

Orang-orang tak berguna di Apple ini berencana untuk merilis perbaikan di macOS , jadi dalam sesuatu yang belum pernah dilakukan oleh siapa pun.

Mereka mencoba untuk memperbaiki masalah kerangka kerja yang mendasarinya di iOS. Jadi saya ragu CORS akan diperbaiki di rilis iOS berikutnya.

Juga tidak memiliki WebVR, keduanya adalah lelucon. Mereka memperlakukan WebVR sebagai semacam lelucon dan bertahun-tahun ketinggalan.

Yah WebVR di desktop membutuhkan Windows SDK sehingga OSX belum menjadi pilihan, tetapi setidaknya apis bisa ada untuk pengujian klien? Jika Android memiliki tampilan karton default, tidak tahu mengapa iOS tidak dapat dan mengaktifkan WebVR?

Mereka meninggalkan masalah CORS ini selama bertahun-tahun dan inilah hasilnya.

Ini terdengar sangat gila.
(Maaf, saya bukan pengembang tumpukan penuh)
Saya hanya ingin memastikan: semuanya jika saya tidak memiliki akses ke tekstur video server di webgl tidak mungkin di ios? DENGAN peretasan proxy, ini berfungsi di ios tetapi BUKAN di osx?

Anda dapat mencoba iframe. Saya belum mencoba itu. Pemain harus duduk di cloudfront dengan file video.

tidak membantu dengan kode dinamis sekalipun. yaitu beberapa link semu.

tautan video adalah //videos.electroteque.org/360/video.mp4

Laman iframe adalah //videos.electroteque.org/360/player.html

Apple memimpin dengan standar yang saya yakini. Di mana Anda memerlukan halaman iframe file statis untuk pemain Anda.

Saya melihat bahwa Chrome untuk iOS akan menambahkan pemutaran sebaris:
https://bugs.chromium.org/p/chromium/issues/detail?id=395206
Pada Selasa, 23 Agustus 2016 pukul 05:18 danrossi [email protected] menulis:

Anda dapat mencoba iframe. Saya belum mencoba itu. Pemain harus
duduk di cloudfront dengan file video.

tidak membantu dengan kode dinamis sekalipun. yaitu beberapa link semu.

tautan video adalah //videos.electroteque.org/360/video.mp4

Laman iframe adalah //videos.electroteque.org/360/player.html

Apple memimpin dengan standar yang saya yakini. Di mana Anda membutuhkan statis
file halaman iframe untuk pemain Anda.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment -241712327,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AANbgfcQaLhx_UmJHEmViJ76_Hi4uikSks5qiuUKgaJpZM4HYtu3
.

Ya! 🤘

Saya baru saja menguji Chrome di iOS. Saya tidak tahu mereka punya.

Sepertinya itu juga menggunakan Webkit seperti Firefox. Dan menderita masalah CORS. Sulit untuk men-debug Chrome dari jarak jauh di iOS karena batasan keras Apple yang jelas di pihak mereka dan weinre terus mogok. Tapi saya mengubah pekerjaan CORS saya di sekitar url dan saya mendapatkan bingkai hitam. Jadi saya tahu CORS lumpuh di Chrome, Firefox dan Safari di iOS. Dengan url proxy CORS yang tepat itu "berfungsi"

pemutaran inline hanya sebagian dari masalah dan hanya masalah untuk Iphone.

pemutaran inline akan datang di iOS 10. Solusi iframe berfungsi untuk masalah CORS, tetapi Anda kehilangan acara devicemotion dan orientationchange di jendela anak

Ya hanya mendapatkan pemutaran inline hanya setengah dari masalah. Masalah CORS jauh lebih penting tetapi tidak akan datang ke iOS 10. Masalah CORS mungkin sepenuhnya diperbaiki untuk Safari tetapi di macOS.

Penyelesaian Iframe bukanlah opsi yang mengharuskan untuk duduk di domain yang sama dengan penyimpanan cloud misalnya. Mungkin ada semacam peretasan DNS agar terlihat seperti cname sub.domain.com adalah domain.com tetapi tidak tahu.

@thiagopnts Jadi, apakah acara itu akan dinonaktifkan di pemutar tertanam iframe bahkan di layar penuh?

@danrossi dari apa yang kami uji, semua acara yang dilampirkan ke window tidak dipecat saat berada di dalam iframe

Apel yang bagus!

@thiagopnts Bisakah Anda memberikan contoh iframe untuk memperbaiki masalah kor? Terima kasih!!

@cheesyeyes di sini: http://thiago.me/kaleidoscope/iframe.html
halaman berada di bawah halaman github, lalu iframe dan video dimuat dari google drive

ya itu berfungsi di Safari tetapi tidak terlalu praktis. file html statis untuk setiap video yang ada di CDN?

Kawan, haruskah masalah ini ditutup?

Saya pikir begitu tidak ada yang bisa Anda lakukan. Sama seperti "Idevice lama bermaksud pelambatan untuk membuatnya usang" seperti yang baru saja kami ketahui dengan masalah fps.

Sesuatu yang benar-benar aneh telah berubah di Safari di Yosemite yang sebelumnya tidak ada. Ini telah merusak deteksi fitur dengan CORS dalam banyak hal yang telah saya lakukan.

Hanya kepala orang yang bekerja betapa rusaknya itu sebenarnya.

var testVideo = document.createElement("video");
 testVideo.crossOrigin = "anonymous";
console.log(testVideo.hasAttribute("crossOrigin"));

Di IE11 ia mengembalikan false seperti yang diharapkan. Di Safari itu benar tetapi bug CORS masih jelas ada. Deteksi fitur ada untuk jelas membutuhkan peretasan proxy. Kegilaan.

Jadi saya tidak bisa tidak berpikir beberapa perubahan setengah matang didorong?

Perubahan aneh dengan flag crossOrigin ini ada di Safari 10. Jadi implementasinya setengah matang. Safari 9 tidak memilikinya.

Saya telah melaporkan beberapa tiket bug webkit.

Mereka telah pergi dan menyabotase peretasan proxy CORS pada pembaruan iOS. macOS juga dilaporkan tidak memperbaiki masalah CORS di Safari.

Sekarang saya harus mencari cara untuk mengatasi sabotase mereka.

Serius membuatku berkeringat haha.

Semuanya, lakukan bagian Anda dan yakinkan orang yang Anda kenal untuk berhenti menggunakan perangkat Apple. Beri tahu mereka bahwa Apple adalah IE5 baru.

Sangat menyedihkan untuk mengatakan CORS di IOS adalah batasan kerangka kerja yang saya yakini tidak mereka perbaiki di iOS 10. Selain itu, apa pun yang menggunakan Webkit adalah masalah.

Rupanya masalah CORS diperbaiki di Safari di macOS tetapi pembaruan terbaru. Pemutaran video sebaris juga berfungsi di iOS 10.

Berikut adalah dua tes untuk streaming mp4 lainnya untuk HLS. Yang HLS membutuhkan kerja ekstra karena bug terpisah dengan FlipY yang masih menjadi masalah di OSX Safari.

Render HLS pada iOS 10 ditampilkan tetapi memiliki masalah artefak warna. Bingkai berhenti berfungsi tetapi saya yakin ini masalah dengan emulator dan bingkai jatuh. Saya sekarang tidak memiliki perangkat yang dapat diperbarui ke iOS 10 karena keusangan dan pemrograman yang berlebihan di pihak Apple. Yang HLS masih tidak muncul sama sekali di iOS 9. Keduanya membutuhkan proxy CORS untuk mp4 dan HLS.

http://dev.electroteque.org/webgl/threejscors.html
http://dev.electroteque.org/webgl/threejscors-hls.html

Sekarang terjebak dengan situasi bahwa deteksi fitur crossOrigin tidak dapat digunakan karena melaporkan dukungan di OSX 10.11 tetapi tidak ada hal seperti itu. harus mencoba dan mendeteksi safari OSX mana yang digunakan juga. sangat buruk.

Ini agak tidak masuk akal dan benar-benar menahan iOS dari pengembangan WebVR berbasis video nyata. Saya mencoba menarik sumber daya lintas domain sebagai bagian dari proyek saat ini, dan ini adalah satu-satunya hal yang menahan saya sekarang. Bekerja di semua Android dan desktop/laptop tetapi tentu saja tidak berfungsi di iOS ...

@theDrGray Anda dapat mencoba peretasan iframe tetapi iframe memblokir api orientasi yang membutuhkan peretasan lain, saya percaya? Saya akan segera menyelidiki demo iframe.

Itu berarti pada CDN Anda, Anda memerlukan pengaturan pemutar video statis per video yang buruk. Apa yang mungkin saya mainkan adalah

filename.html diuraikan dan nama file yang dimuat adalah filename.mp4 , filename.webm, filename,m3u8 filename.mpd dll. Kemudian token pribadi dapat dimuat pada itu seperti filename.html?t=token.

Kalau saja fungsi Amazon Lamda bisa bekerja di domain yang sama dengan nama video, pemain bisa dinamis ??

Jika semuanya gagal, Anda memerlukan proxy CORS dan untuk mendeteksi ini adalah masalah sekarang. Mereka menyabotnya di Safari 10. Safari 10 melaporkan dukungan untuk "crossOrigin" tetapi sebenarnya tidak di iOS 10 dan Yosemite. Anda perlu melakukan pemeriksaan sekunder untuk OSX 10.12 haha

Inilah yang terlihat seperti deteksi CORS di proyek pemutar ES6 saya

static supportsCORS() {
        let testVideo = document.createElement("video"),
            hasCORS = false;

        testVideo.crossOrigin = "anonymous";
        hasCORS = testVideo.hasAttribute("crossOrigin");
        testVideo = null;

        if (hasCORS) {

            if (WebVRUtils.isSafari) {

                if (WebVRUtils.isIpad) return false;
                return WebVRUtils.isNewSafari;
            }

            return true;
        }

        return false;

    }

    static get isSafari() {
        const userAgent = navigator.userAgent;
        return (/Safari/i).test(userAgent) && !(/Chrome/i).test(userAgent);
    }

    static get isIpad() {
        const userAgent = navigator.userAgent;
        return (/iP(hone|od|ad)/i).test(userAgent);
    }

    static get isNewSafari() {
        const version = /Mac OS X (10[\.\_\d]+)/.exec(navigator.userAgent)[1].split("_")[1];
        return +version >= 12;
    }

Masalah yang sama di sini.... Bekerja di mana saja kecuali iOS. Sangat menjengkelkan. Apa lubang besar dalam kiriman saya. Ini HANYA berfungsi (kecepatan bingkai yang mengerikan dapat saya tambahkan) ketika jalur sumber relatif ... Tidak ideal untuk sistem penskalaan. Ugh.... Yah.... Setidaknya aku bisa berhenti membenturkan kepalaku.... Tidak mungkin.... Untuk saat ini... Sekarang untuk membangunnya... Dan ux fallback dan messaging.

@danrossi Terima kasih atas komentar Anda "Tampaknya masalah CORS diperbaiki di Safari di macOS tetapi pembaruan terbaru," namun saya belum dapat menemukan detail lain di tempat lain selain komentar Anda. Apakah Anda tahu versi macOS dan Safari apa yang berfungsi dengan ini? Apakah itu akan menjadi "tanda" bahwa Apple akan menyebarkan perbaikan itu ke iOS?

Seseorang bisa berharap...

Pada 1 Des 2016 15:50, "Kieran Farr" [email protected] menulis:

@danrossi https://github.com/danrossi Terima kasih atas komentar Anda
"Rupanya masalah CORS diperbaiki di Safari di macOS tetapi yang terbaru
pembaruan," namun saya belum dapat menemukan detail lainnya di tempat lain
selain komentar anda. Apakah Anda tahu versi macOS dan Safari apa ini?
bekerja dengan? Apakah itu akan menjadi "tanda" bahwa Apple akan menyebarkan perbaikan itu ke
iOS?


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-264290616 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ANKfT8A140W4hW0YMqq3L6AP_gljY4WUks5rDzMGgaJpZM4HYtu3
.

@kfarr apa pun pembaruan terbaru untuk macOS. Versi OSX dan Safari sebelumnya masih memiliki masalah. Begitulah cara Apple menggulung. Mereka memaksa pengguna untuk memperbarui untuk mendapatkan perbaikan.

Dikonfirmasi ini berfungsi seperti yang diharapkan (perbaikan bug) saat menguji URL pengujian ini menggunakan macOS Sierra 10.12.1 (16B2659) Safari Versi 10.0.1 (12602.2.14.0.7) terbaru.

Bug masih TIDAK diperbaiki di Mobile Safari di iOS 10.2 Public Beta 3 (14C5077b). Ada Beta 4 yang lebih baru tersedia tetapi saya belum menginstal atau menguji.

Ya itu masih menjadi masalah di iOS. Jika Anda menggunakan aplikasi berbasis WebView Cordova. Tidak ada masalah CORS sama sekali, itu bagian yang paling aneh.

Hhmmmmmm.... Pembungkus Cordova memperbaikinya!?! Aneh...

Pada 1 Des 2016 18:59, "danrossi" [email protected] menulis:

Ya itu masih menjadi masalah di iOS. Jika Anda menggunakan aplikasi berbasis WebView Cordova.
Tidak ada masalah CORS sama sekali, itu bagian yang paling aneh.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-264333449 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ANKfT40CQRZqWYEJWmojo_Omvl38WeUlks5rD19GgaJpZM4HYtu3
.

Ya bekerja di sekitar pembatasan CORS dan bahkan tidak memerlukan atribut crossOrigin. Mudah-mudahan mereka tidak menyabotase itu sebagai pilihan.

Adakah yang tahu apa yang menyebabkan perilaku ini untuk Cordova WebView? Saya mencoba membaca sumber ini https://github.com/Apache/cordova-ios/blob/master/CordovaLib/Classes/Private/Plugins/CDVUIWebViewEngine/CDVUIWebViewEngine.m dan tidak dapat menemukan apa pun yang terkait.

@matti777 Sejauh yang saya ketahui selama itu berhasil dan mudah-mudahan mereka tidak mengetahui dan menyabotnya dengan sengaja, biarlah haha.

Saya perlu mengkonfirmasi ini masih terjadi pada iOS10 meskipun maaf. Untuk saat ini saya mendeteksi Cordova dan tidak mencoba menggunakan sumber proxy CORS. Fitur saya beralih ke sumber proxy CORS bila diperlukan.

Maksud saya jika saya tahu apa yang dilakukan Cordova secara berbeda dengan UIWebView-nya, saya akan mereplikasi kode itu di aplikasi asli saya sendiri untuk mendapatkan dukungan CORS untuk video html5 saya yang juga saya gunakan sebagai tekstur TIGA.js.

Kami menggunakan video yang dihosting Vimeo dan URL publik dari formulir:

https://player.vimeo.com/external/...

..dont work, video DO bekerja dengan URL yang dialihkan ke ini:

https://fpdl.vimeocdn.com/..

Mungkin vimeocdn.com mereka memiliki fitur proxy terbalik yang diinstal? Saya kira saya harus bertanya pada Vimeo.

Saya harus mengatakan bahwa saya sangat terganggu dengan ini. Terima kasih Steve.

  • M

Saya akan mencoba solusi IFRAME. Meskipun tidak begitu yakin bagaimana melakukannya. Saya membuat elemen video/kanvas dari kode (dan tentu saja tidak pernah menambahkannya ke DOM) jadi saya bertanya-tanya apakah sesuatu seperti:

self.iframe = document.createElement("IFRAME");
self.iframe.setAttribute("src", 'https://player.vimeo.com/');
self.iframe.appendChild(self.video);

.. cukup.

Jadi, uhm, setelah menyerah pada tekstur video iOS, saya beralih ke Android, hanya untuk melihat perilaku serupa melalui THREE.js; video CORS saya diputar (saya mendengar audionya) tetapi video tidak ditampilkan -- yang saya dapatkan hanyalah layar hitam. Saya mencoba ini dengan THREE.js r79 dan r84, barusan. Yang aneh di sini adalah http://krpano.com/ios/bugs/ios8-webgl-video-cors/ berfungsi dengan baik di Android?

Ini adalah kode yang saya gunakan di Android - baik semua platform, dalam hal ini - (berjalan di dalam aplikasi asli dalam tampilan web, dengan akselerasi perangkat keras diaktifkan dan WebChromeClient diinstal):

http://Pastebin.com/Y1D3beti

Satu-satunya perbedaan dengan webGL mentah krpano.com yang berfungsi adalah bahwa mereka mengunggah tekstur langsung dari elemen video alih-alih melalui kanvas - apakah ini masalah saya? Saya benar-benar perlu merender melalui kanvas untuk menambahkan hal-hal di sekitar gambar video.

  • mati

Satu-satunya perbedaan dengan webGL mentah krpano.com yang berfungsi adalah bahwa mereka mengunggah tekstur langsung dari elemen video alih-alih melalui kanvas - apakah ini masalah saya?

Mungkin? Apakah Anda mencoba melewati video secara langsung?

Tiket ini sehubungan dengan masalah CORS dengan Safari. Safari 10 di macOS diperbaiki sepenuhnya bahkan untuk Dash.

IOS 10 masih bermasalah dengan COR dan membutuhkan proksi CORS. Atau gunakan aplikasi Cordova Webview yang tidak menggunakan batasan CORS sama sekali.

Peramban stok Android tidak mendukung CORS dan bahkan proksi CORS tidak berfungsi.

Chrome dan Firefox hanya di Android.

Masalah khusus ini tidak ada hubungannya dengan three.js saya khawatir. Saya bahkan tidak akan menggunakan gambar kanvas yang akan menjatuhkan terlalu banyak bingkai.

@danrossi bisakah kami melihat apa yang sedang Anda bangun? Kedengarannya cukup mengesankan!

Pada Kamis, 26 Januari 2017, 08:41 danrossi [email protected] menulis:

Tiket ini sehubungan dengan masalah CORS dengan Safari. Safari 10 di macOS adalah
diperbaiki sepenuhnya bahkan untuk Dash.

IOS 10 masih bermasalah dengan COR dan membutuhkan proksi CORS.

Peramban stok Android tidak mendukung CORS dan bahkan proksi CORS mendukung
tidak bekerja.

Chrome dan Firefox hanya di Android.

Masalah khusus ini tidak ada hubungannya dengan three.js saya khawatir. Saya
bahkan tidak akan menggunakan gambar kanvas yang akan menjatuhkan terlalu banyak bingkai.


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-275438671 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AANbgazonmTe-yGDfgToCRVhTy_qyp_Eks5rWMy1gaJpZM4HYtu3
.

>

http://jonobr1.com/

@danrossi Safari sepenuhnya diperbaiki untuk Anda? Apakah Anda menggunakan peretasan proxy untuk menjalankan Safari sekarang? Saya masih mendapatkan SecurityError (DOM Exception 18): The operation is insecure. di https://krpano.com/ios/bugs/ios8-webgl-video-cors/ dengan Safari 10.0.3 di El Capitan.

@timothyallan Saya memiliki terlalu banyak proyek lain untuk dikonsentrasikan saat saya mengembangkan banyak fitur pemutar video yang berbeda. Sejauh yang saya tahu mereka telah memperbaikinya di macOS Safari, setiap Safari lainnya adalah vapourware sejauh yang mereka ketahui. Saya tidak melihat pembaruan untuk OS lama bahkan pembaruan keamanan.

IOS 10 adalah pemecah kesepakatan di sini dan masih menjadi masalah. Saya harus menjelaskan kepada orang-orang sepanjang waktu mengapa itu tidak berhasil dan bagaimana menghindarinya.

Apple mengharapkan orang untuk memperbarui ke sistem operasi baru dan saya percaya itu final.

Masalah webgl dengan Dash di Safari Saya melihat dribs dan drabs pembaruan status pada tiket itu tetapi dalam pengujian saya, saya pikir itu juga berfungsi di macOS.

Hanya pembaruan di sini. Bludger ini telah memberikan beberapa dorongan meskipun masih sangat tenang.

Perbaikan kor ada di iOS11 beta. IOS10 tidak akan mendapatkannya.

https://bugs.webkit.org/show_bug.cgi?id=135379#c92

Pembaruan baru. IOS 11 beta pada perangkat yang dilaporkan memiliki CORS diperbaiki. Sekarang membutuhkan perangkat baru yang mendukung iOS 11.

Jangan repot-repot dengan simulator yang rusak dan tidak memiliki perbaikan CORS.

https://bugs.webkit.org/show_bug.cgi?id=135379#c108

Ya!!

Pada 11 Agustus 2017 2:53, "danrossi" [email protected] menulis:

Pembaruan baru. IOS 11 beta pada perangkat yang dilaporkan memiliki CORS diperbaiki. Sekarang
memerlukan perangkat baru yang mendukung iOS 11.

https://bugs.webkit.org/show_bug.cgi?id=135379#c108


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-321742658 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ANKfT5TG41uHQV8U_FrF8LaJ0EMKKIy_ks5sW_pjgaJpZM4HYtu3
.

Mengonfirmasi CORS telah diperbaiki di IOS 11.1. Saya akhirnya mendapatkan anggaran untuk mendapatkan perangkat keras untuk pengujian. Ini telah memakan waktu lama.

Tidak perlu proxy CORS dengan 11.1. Saya tidak berpikir dukungan atribut CORS dapat diuji dengan benar dengan Safari. Harus melakukan pemeriksaan versi klien.

Ada masalah regresi HLS/webgl utama yang harus dilalui sekarang.

Besar. Terima kasih!

Pada 5 November 2017 1:36, "danrossi" [email protected] menulis:

Mengonfirmasi CORS telah diperbaiki di IOS 11.1. Saya akhirnya mendapatkan anggaran untuk mendapatkan
perangkat keras untuk pengujian. Ini telah memakan waktu lama.

Tidak perlu proxy CORS dengan 11.1. Saya tidak berpikir atribut CORS
dukungan dapat diuji dengan benar dengan Safari. Harus melakukan versi klien
cek.

Ada masalah regresi HLS/webgl utama yang harus dilalui sekarang.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/mrdoob/three.js/issues/8110#issuecomment-341952485 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ANKfT52MncuxghqJmPes4iFoO1a_K_Gfks5szVd1gaJpZM4HYtu3
.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat