<b:if cond='data:view.isPost'>
<script>
//<![CDATA[
document.addEventListener("DOMContentLoaded", function() {
// Cari kontainer utama teks berita (sesuaikan class jika judul/artikel tidak terbaca)
var postBody = document.querySelector('.post-body, .entry-content');
if (!postBody) return;
// Buat element HTML pemutar audio di atas artikel
var playerHTML = document.createElement('div');
playerHTML.className = 'audio-news-player';
playerHTML.innerHTML = `
<div class="audio-player-info">
<span>🎧 Dengarkan Berita Ini</span>
</div>
<button class="btn-audio-control" id="btn-audio-play">
<span>▶️ Putar Suara</span>
</button>
`;
// Pasang player di bagian paling atas isi berita
postBody.insertBefore(playerHTML, postBody.firstChild);
var synth = window.speechSynthesis;
var utterance = null;
var isPlaying = false;
var btn = document.getElementById('btn-audio-play');
btn.addEventListener('click', function() {
if (!synth) {
alert("Browser Anda belum mendukung fitur pembaca suara.");
return;
}
if (isPlaying) {
// Jika sedang berputar, maka Pause/Stop
synth.cancel();
btn.innerHTML = '<span>▶️ Putar Suara</span>';
isPlaying = false;
} else {
// Ambil murni teks berita, bersihkan dari kode HTML / Skrip iklan
var textToRead = postBody.innerText.replace(/🎧 Dengarkan Berita Ini[\s\S]*?▶️ Putar Suara/, '').trim();
if (textToRead.length === 0) return;
utterance = new SpeechSynthesisUtterance(textToRead);
utterance.lang = 'id-ID'; // Mengunci suara logat Bahasa Indonesia resmi
utterance.rate = 1.0; // Kecepatan normal suara membaca
// Deteksi jika suara selesai membaca
utterance.onend = function() {
btn.innerHTML = '<span>▶️ Putar Suara</span>';
isPlaying = false;
};
synth.speak(utterance);
btn.innerHTML = '<span>⏹️ Hentikan</span>';
isPlaying = true;
}
});
});
//]]>
</script>
</b:if>