Themes [Default]: Audio waveform support and new setting integration.

This commit is contained in:
fusionate
2024-02-09 13:07:19 -07:00
parent 0be7204762
commit adf8062378
3 changed files with 146 additions and 33 deletions

View File

@@ -746,21 +746,38 @@
{literal}
var recording_audio, audio_clock, recording_id_playing;
function recording_play(recording_id) {
if (document.getElementById('recording_progress_bar_'+recording_id)) {
document.getElementById('recording_progress_bar_'+recording_id).style.display='';
function recording_play(player_id, data, audio_type) {
if (document.getElementById('recording_progress_bar_' + player_id)) {
document.getElementById('recording_progress_bar_' + player_id).style.display='';
}
recording_audio = document.getElementById('recording_audio_'+recording_id);
recording_audio = document.getElementById('recording_audio_' + player_id);
if (recording_audio.paused) {
{/literal}
//create and load waveform image
{if $settings.theme.audio_player_waveform_enabled == 'true'}
{literal}
//list playback
if (document.getElementById('playback_progress_bar_background_' + player_id)) {
// alert("waveform.php?id=" + player_id + (data !== undefined ? '&data=' + data : '') + (audio_type !== undefined ? '&type=' + audio_type : ''));
document.getElementById('playback_progress_bar_background_' + player_id).style.backgroundImage = "linear-gradient(to bottom, rgba(0,0,0,0.10) 0%, transparent 20%), url('waveform.php?id=" + player_id + (data !== undefined ? '&data=' + data : '') + (audio_type !== undefined ? '&type=' + audio_type : '') + "')";
}
//form playback
else if (document.getElementById('recording_progress_bar_' + player_id)) {
// alert("waveform.php?id=" + player_id + (data !== undefined ? '&data=' + data : '') + (audio_type !== undefined ? '&type=' + audio_type : ''));
document.getElementById('recording_progress_bar_' + player_id).style.backgroundImage = "linear-gradient(to bottom, rgba(0,0,0,0.10) 0%, transparent 20%), url('waveform.php?id=" + player_id + (data !== undefined ? '&data=' + data : '') + (audio_type !== undefined ? '&type=' + audio_type : '') + "')";
}
{/literal}
{/if}
{literal}
recording_audio.volume = 1;
recording_audio.play();
recording_id_playing = recording_id;
document.getElementById('recording_button_'+recording_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_pause}{literal} fa-fw'></span>";
audio_clock = setInterval(function () { update_progress(recording_id); }, 20);
recording_id_playing = player_id;
document.getElementById('recording_button_' + player_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_pause}{literal} fa-fw'></span>";
audio_clock = setInterval(function () { update_progress(player_id); }, 20);
$('[id*=recording_button]').not('[id*=recording_button_'+recording_id+']').html("<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>");
$('[id*=recording_progress_bar]').not('[id*=recording_progress_bar_'+recording_id+']').css('display', 'none');
$('[id*=recording_button]').not('[id*=recording_button_' + player_id + ']').html("<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>");
$('[id*=recording_progress_bar]').not('[id*=recording_progress_bar_' + player_id + ']').css('display', 'none');
$('audio').each(function(){
if ($(this).get(0) != recording_audio) {
@@ -772,33 +789,33 @@
else {
recording_audio.pause();
recording_id_playing = '';
document.getElementById('recording_button_'+recording_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>";
document.getElementById('recording_button_' + player_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>";
clearInterval(audio_clock);
}
}
function recording_stop(recording_id) {
recording_reset(recording_id);
function recording_stop(player_id) {
recording_reset(player_id);
clearInterval(audio_clock);
}
function recording_reset(recording_id) {
recording_audio = document.getElementById('recording_audio_'+recording_id);
function recording_reset(player_id) {
recording_audio = document.getElementById('recording_audio_' + player_id);
recording_audio.pause();
recording_audio.currentTime = 0;
if (document.getElementById('recording_progress_bar_'+recording_id)) {
document.getElementById('recording_progress_bar_'+recording_id).style.display='none';
if (document.getElementById('recording_progress_bar_' + player_id)) {
document.getElementById('recording_progress_bar_' + player_id).style.display='none';
}
document.getElementById('recording_button_'+recording_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>";
document.getElementById('recording_button_' + player_id).innerHTML = "<span class='{/literal}{$settings.theme.button_icon_play}{literal} fa-fw'></span>";
clearInterval(audio_clock);
}
function update_progress(recording_id) {
recording_audio = document.getElementById('recording_audio_'+recording_id);
var recording_progress = document.getElementById('recording_progress_'+recording_id);
function update_progress(player_id) {
recording_audio = document.getElementById('recording_audio_' + player_id);
var recording_progress = document.getElementById('recording_progress_' + player_id);
var value = 0;
if (recording_audio != null && recording_audio.currentTime > 0) {
value = (100 / recording_audio.duration) * recording_audio.currentTime;
value = Number(((100 / recording_audio.duration) * recording_audio.currentTime).toFixed(1));
}
if (recording_progress) {
recording_progress.style.marginLeft = value + '%';
@@ -810,14 +827,14 @@
function recording_fast_forward() {
if (recording_audio) {
recording_audio.currentTime += 5;
recording_audio.currentTime += {/literal}{if !empty($settings.theme.audio_player_scrub_seconds) }{$settings.theme.audio_player_scrub_seconds}{else}2{/if}{literal};
update_progress(recording_id_playing);
}
}
function recording_rewind() {
if (recording_audio) {
recording_audio.currentTime -= 5;
recording_audio.currentTime -= {/literal}{if !empty($settings.theme.audio_player_scrub_seconds) }{$settings.theme.audio_player_scrub_seconds}{else}2{/if}{literal};
update_progress(recording_id_playing);
}
}