Создайте еще одну кнопку для включения звука и сохраните ее стиль как display:none
, а затем в функции переключения измените видимость соответственно,
var mediaPlayer = document.getElementById('video');
var muteBtn = document.getElementById('mute-button');
var unmuteBtn = document.getElementById('unmute-button');
function toggleMute() {
if (mediaPlayer.muted) {
// Change the button to be a mute button
unmuteBtn.style.display='block';
muteBtn.style.display='none';
// Unmute the media player
mediaPlayer.muted = false;
} else {
// Change the button to be an unmute button
muteBtn.style.display='block';
unmuteBtn.style.display='none';
// Mute the media player
mediaPlayer.muted = true;
}
}
полу-псевдо-код:
public Font scaleFont(String text, Rectangle rect, Graphics g, Font pFont) {
float fontSize = 20.0f;
Font font = pFont;
font = g.getFont().deriveFont(fontSize);
int width = g.getFontMetrics(font).stringWidth(text);
fontSize = (rect.width / width ) * fontSize;
return g.getFont().deriveFont(fontSize);
}
я не уверен, почему вы передаете pFont, поскольку он не используется ...
You could use interpolation search:
public static Font scaleFont(String text, Rectangle rect, Graphics g, Font pFont) {
float min=0.1f;
float max=72f;
float size=18.0f;
Font font=pFont;
while(max - min <= 0.1) {
font = g.getFont().deriveFont(size);
FontMetrics fm = g.getFontMetrics(font);
int width = fm.stringWidth(text);
if (width == rect.width) {
return font;
} else {
if (width < rect.width) {
min = size;
} else {
max = size;
}
size = Math.min(max, Math.max(min, size * (float)rect.width / (float)width));
}
}
return font;
}
Вы можете повысить эффективность, используя шаблон двоичного поиска - высокий / низкий с некоторой степенью детализации - 1, 0,5 или 0,25 балла.
Например, предположить, что 18, слишком много? Перейти на 9, слишком низко? 13,5, слишком мало? 15,75, слишком высоко? 14!
Другой очевидный способ - предварительно нарисовать текст на растровом изображении, а затем сжать растровое изображение, чтобы оно соответствовало прямоугольнику; но,