add toggle mute clicking on volume icon
This commit is contained in:
parent
a0424c91a0
commit
0cb3552ace
@ -10,6 +10,12 @@
|
|||||||
[#](https://git.project-insanity.org/onny/nextcloud-app-radio/commit/07ce3e5aebd5e5b5bf91e3aae996441ae9268402) @onny
|
[#](https://git.project-insanity.org/onny/nextcloud-app-radio/commit/07ce3e5aebd5e5b5bf91e3aae996441ae9268402) @onny
|
||||||
- Remember volume state
|
- Remember volume state
|
||||||
[#66](https://git.project-insanity.org/onny/nextcloud-app-radio/issues/66) @onny
|
[#66](https://git.project-insanity.org/onny/nextcloud-app-radio/issues/66) @onny
|
||||||
|
- German translation
|
||||||
|
[#38](https://git.project-insanity.org/onny/nextcloud-app-radio/issues/38) @onny
|
||||||
|
- Add donation info to README
|
||||||
|
[#70](https://git.project-insanity.org/onny/nextcloud-app-radio/issues/70) @onny
|
||||||
|
- Toggle audio mute click on volume icon
|
||||||
|
[#69](https://git.project-insanity.org/onny/nextcloud-app-radio/issues/69) @onny
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fix styling issue (overflow hidden) player area
|
- Fix styling issue (overflow hidden) player area
|
||||||
|
@ -30,9 +30,18 @@ docker run -v /tmp/dockerdata:/data/data -v /tmp/nextcloud-app-radio:/opt/nextcl
|
|||||||
## Reporting bugs
|
## Reporting bugs
|
||||||
You can report bugs in the public gitlab repository [here](https://git.project-insanity.org/onny/nextcloud-app-radio/issues) and for discussion you can find a section for the app in the offical Nextcloud forums [here](https://help.nextcloud.com/c/apps/radio).
|
You can report bugs in the public gitlab repository [here](https://git.project-insanity.org/onny/nextcloud-app-radio/issues) and for discussion you can find a section for the app in the offical Nextcloud forums [here](https://help.nextcloud.com/c/apps/radio).
|
||||||
|
|
||||||
|
## Adding translations
|
||||||
|
For now only German translations are provided, so please submit your translations if possible :) It's really easy, just `git clone` this repo and copy the translation files in `l10n` according to your locale. Merge requests go to [this radio repository](https://git.project-insanity.org/onny/nextcloud-app-radio).
|
||||||
|
|
||||||
## Adding radio stations
|
## Adding radio stations
|
||||||
This app uses a public and open database of radio stations as its backend, so any station you add in [radio-browser.info](http://www.radio-browser.info/) (no account required), will be also available in this app. Feel free to contribute :)
|
This app uses a public and open database of radio stations as its backend, so any station you add in [radio-browser.info](http://www.radio-browser.info/) (no account required), will be also available in this app. Feel free to contribute :)
|
||||||
|
|
||||||
## Credits
|
## Credits
|
||||||
* [radio-browser.info](http://www.radio-browser.info/) database api as backend for this app
|
* [radio-browser.info](http://www.radio-browser.info/) database api as backend for this app
|
||||||
* Python example code to query stream metadata, took from [here](https://anton.logvinenko.name/en/blog/how-to-get-title-from-audio-stream-with-python.html).
|
* Python example code to query stream metadata, took from [here](https://anton.logvinenko.name/en/blog/how-to-get-title-from-audio-stream-with-python.html).
|
||||||
|
|
||||||
|
## Donation
|
||||||
|
If you like this app and want to support my work, you can donate to this Bitcoin address:
|
||||||
|
```
|
||||||
|
19mpmuNczGDgdxaBLBn3REEpQLPPcJHZB6
|
||||||
|
```
|
||||||
|
15
css/main.css
15
css/main.css
@ -477,10 +477,10 @@ table td {
|
|||||||
width: 20px;
|
width: 20px;
|
||||||
height: 20px;
|
height: 20px;
|
||||||
background-size: contain;
|
background-size: contain;
|
||||||
position: relative;
|
|
||||||
left: -30px;
|
|
||||||
top: -3px;
|
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
|
position: relative;
|
||||||
|
left: 75px;
|
||||||
|
top: 14px;
|
||||||
}
|
}
|
||||||
#volumeicon.full {
|
#volumeicon.full {
|
||||||
background-image: url('../img/sound_full.png');
|
background-image: url('../img/sound_full.png');
|
||||||
@ -495,8 +495,13 @@ table td {
|
|||||||
#volumeslider{
|
#volumeslider{
|
||||||
width: 170px;
|
width: 170px;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
margin-top: 15px;
|
position: relative;
|
||||||
margin-left: 35px;
|
left: 40px;
|
||||||
|
top: -7px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#station_metadata {
|
||||||
|
margin-top: -3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#preload-01 { background: url('../img/sound_mid.png') no-repeat -9999px -9999px; }
|
#preload-01 { background: url('../img/sound_mid.png') no-repeat -9999px -9999px; }
|
||||||
|
35
js/main.js
35
js/main.js
@ -1,5 +1,7 @@
|
|||||||
$(function(){
|
$(function(){
|
||||||
|
|
||||||
|
var last_volume = 0;
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
|
||||||
// Player icon pause/stop
|
// Player icon pause/stop
|
||||||
@ -425,6 +427,37 @@ $(function(){
|
|||||||
}, 700)
|
}, 700)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
$("#volumeicon").on("click", function(e) {
|
||||||
|
if (player.volume > 0) {
|
||||||
|
last_volume = player.volume;
|
||||||
|
player.volume = 0;
|
||||||
|
$('#volumeslider').slider('value',0);
|
||||||
|
save_volume_state(0);
|
||||||
|
} else {
|
||||||
|
if (!last_volume == 0) {
|
||||||
|
player.volume = last_volume;
|
||||||
|
$('#volumeslider').slider('value',last_volume);
|
||||||
|
save_volume_state(last_volume);
|
||||||
|
} else {
|
||||||
|
player.volume = 1;
|
||||||
|
$('#volumeslider').slider('value',1);
|
||||||
|
save_volume_state(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (player.volume < 0.2) {
|
||||||
|
$("#volumeicon").removeClass();
|
||||||
|
$("#volumeicon").attr("class","silent");
|
||||||
|
}
|
||||||
|
if (player.volume > 0.5) {
|
||||||
|
$("#volumeicon").removeClass();
|
||||||
|
$("#volumeicon").attr("class","full");
|
||||||
|
}
|
||||||
|
if (player.volume < 0.5 && player.volume > 0.2) {
|
||||||
|
$("#volumeicon").removeClass();
|
||||||
|
$("#volumeicon").attr("class","mid");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
function load_volume_state() {
|
function load_volume_state() {
|
||||||
var volume_state = 0;
|
var volume_state = 0;
|
||||||
var baseUrl = OC.generateUrl('/apps/radio/getVolumeState');
|
var baseUrl = OC.generateUrl('/apps/radio/getVolumeState');
|
||||||
@ -433,8 +466,10 @@ $(function(){
|
|||||||
volume_state = data["volume_state"];
|
volume_state = data["volume_state"];
|
||||||
if (volume_state == "") {
|
if (volume_state == "") {
|
||||||
player.volume = 1;
|
player.volume = 1;
|
||||||
|
last_volume = 1;
|
||||||
$('#volumeslider').slider('value',1);
|
$('#volumeslider').slider('value',1);
|
||||||
} else {
|
} else {
|
||||||
|
last_volume = volume_state;
|
||||||
player.volume = Number(volume_state);
|
player.volume = Number(volume_state);
|
||||||
$('#volumeslider').slider('value',Number(volume_state));
|
$('#volumeslider').slider('value',Number(volume_state));
|
||||||
if (volume_state < 0.2) {
|
if (volume_state < 0.2) {
|
||||||
|
@ -30,9 +30,8 @@
|
|||||||
<div id="app-settings">
|
<div id="app-settings">
|
||||||
<audio id="player" src=""></audio>
|
<audio id="player" src=""></audio>
|
||||||
<button id="playbutton" class="play"></button>
|
<button id="playbutton" class="play"></button>
|
||||||
<div id="volumeslider">
|
|
||||||
<div id="volumeicon" class="full"></div>
|
<div id="volumeicon" class="full"></div>
|
||||||
</div>
|
<div id="volumeslider"></div>
|
||||||
<p id="station_metadata"></p>
|
<p id="station_metadata"></p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user