Kata Pengantar
Vue.js ialah rangka kerja bahagian hadapan yang popular, yang dicirikan dengan ringan, mudah digunakan, mudah difahami dan mudah diselenggara. Ramai pembangun suka menggunakannya untuk membangunkan aplikasi web, tetapi dalam proses menggunakan Vue.js, sesetengah pembangun akan menghadapi masalah pelik: apabila memainkan video pada kelajuan berganda, audio hilang. Seterusnya, artikel ini akan memperincikan mengapa masalah ini berlaku dan cara menyelesaikannya.
Punca masalah
Punca punca masalah ini disebabkan oleh penggunaan fungsi main balik berkelajuan dua kali, bukan ralat pengekodan. JavaScript sememangnya satu benang, jadi Vue.js tidak terkecuali. Apabila video dimainkan pada kelajuan berganda, kelajuan main balik meningkat, dan kelajuan benang tunggal Vue.js yang melintasi pokok DOM juga dipercepatkan Walau bagaimanapun, audio video tidak dipercepatkan, yang menyebabkan masalah no bunyi pada kelajuan dua kali ganda. Ini kerana pepohon DOM dilalui terlalu pantas dan data audio tidak dapat dihantar ke penyemak imbas tepat pada masanya, jadi tiada bunyi kedengaran.
Penyelesaian
Pada asasnya, selagi anda tidak menggunakan kelajuan dua kali fungsi main balik, anda boleh memastikan bahawa Vue.js Berjalan seperti biasa dan memainkan audio. Walaupun kaedah ini memberi kesan yang baik dalam menyelesaikan masalah, ia bukanlah kaedah yang praktikal kerana main balik berkelajuan dua video adalah fungsi yang baik yang boleh mempercepatkan main balik video dan meningkatkan pengalaman pengguna.
Apabila urutan tunggal Vue.js tersekat, kami boleh menggunakan Pekerja Web untuk mencapai operasi berbilang benang. Pekerja Web ialah utas JavaScript yang boleh menjalankan skrip dalam utas berasingan yang boleh dipanggil daripada utas utama. Apabila menggunakan Pekerja Web, kita perlu membenarkan utas utama menghantar data audio ke utas pekerja.
Jika format pengekodan audio terlalu besar, ia akan menyebabkan ketinggalan semasa melintasi pokok DOM. Oleh itu, kami boleh memilih format pengekodan audio yang sesuai untuk mengurangkan saiz fail dan meningkatkan kelajuan penghantaran data, dengan itu mengelakkan ketidakupayaan untuk memuat naik data audio disebabkan oleh kelajuan traversal pokok DOM yang terlalu cepat. Sudah tentu, kelemahan pendekatan ini ialah ia memerlukan prestasi penyahkod yang lebih tinggi.
Apabila menggunakan fungsi main balik berkelajuan dua kali, kami boleh melaraskan kelajuan video dengan sewajarnya untuk memastikan penyegerakan audio dan video. Dengan melaraskan kelajuan, kami boleh mempercepatkan main balik video sambil memastikan data audio dihantar ke penyemak imbas tepat pada masanya. Kaedah ini agak mudah untuk dilaksanakan, tetapi kesannya tidak begitu ideal.
Kesimpulan
Di atas adalah penyelesaian kepada masalah tiada bunyi apabila Vue.js bermain pada kelajuan dua kali ganda. Dalam aplikasi praktikal, kita perlu memilih penyelesaian yang sesuai untuk menangani masalah ini mengikut situasi tertentu. Tidak kira kaedah yang digunakan, perhatian perlu diberikan kepada isu penggandaan kelajuan video dan penyegerakan audio, jika tidak, pengalaman pengguna akan terjejas pada tahap tertentu. Saya harap artikel ini berguna kepada pembangun yang mungkin menghadapi masalah ini.
Atas ialah kandungan terperinci Mengapa tiada bunyi vokal apabila Vue menggandakan kelajuan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!