@christianriedl/media 1.0.96 → 1.0.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iMedia.d.ts +2 -0
- package/dist/iMedia.js.map +1 -1
- package/package.json +1 -1
- package/src/views/PhotoAlbumPage.vue +27 -1
package/dist/iMedia.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export interface IMediaAppConfig {
|
|
|
25
25
|
pictureQuality: EPictureQuality;
|
|
26
26
|
linkDaysValid: number;
|
|
27
27
|
useSatIp: boolean;
|
|
28
|
+
useImagePreload: boolean;
|
|
28
29
|
}
|
|
29
30
|
export declare enum EItemType {
|
|
30
31
|
None = 0,
|
|
@@ -155,6 +156,7 @@ export interface IPictureFile extends IMediaFile {
|
|
|
155
156
|
ThumbHeight: number;
|
|
156
157
|
ThumbWidth: number;
|
|
157
158
|
selected?: boolean;
|
|
159
|
+
blob?: string;
|
|
158
160
|
}
|
|
159
161
|
export interface IAudioFile extends IMediaFile {
|
|
160
162
|
BitRate: number;
|
package/dist/iMedia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iMedia.js","sourceRoot":"","sources":["../src/iMedia.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IAClB,6CAAS,CAAA;IACT,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,4CAAS,CAAA;IACT,0DAAgB,CAAA;IAChB,iDAAa,CAAA;IACb,6CAAW,CAAA;IACX,mDAAc,CAAA;AAClB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AACD,MAAM,CAAN,IAAY,eAWX;AAXD,WAAY,eAAe;IACvB,qDAAiB,CAAA;IACjB,gEAAoB,CAAA;IACpB,gEAAoB,CAAA;IACpB,gEAAoB,CAAA;IACpB,gEAAoB,CAAA;IACpB,kEAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,8DAAoB,CAAA;AACxB,CAAC,EAXW,eAAe,KAAf,eAAe,QAW1B;
|
|
1
|
+
{"version":3,"file":"iMedia.js","sourceRoot":"","sources":["../src/iMedia.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IAClB,6CAAS,CAAA;IACT,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,4CAAS,CAAA;IACT,0DAAgB,CAAA;IAChB,iDAAa,CAAA;IACb,6CAAW,CAAA;IACX,mDAAc,CAAA;AAClB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AACD,MAAM,CAAN,IAAY,eAWX;AAXD,WAAY,eAAe;IACvB,qDAAiB,CAAA;IACjB,gEAAoB,CAAA;IACpB,gEAAoB,CAAA;IACpB,gEAAoB,CAAA;IACpB,gEAAoB,CAAA;IACpB,kEAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,4DAAoB,CAAA;IACpB,8DAAoB,CAAA;AACxB,CAAC,EAXW,eAAe,KAAf,eAAe,QAW1B;AAQD,MAAM,CAAN,IAAY,SAoDX;AApDD,WAAY,SAAS;IACjB,yCAAQ,CAAA;IACR,mDAAa,CAAA;IACb,uDAAe,CAAA;IACf,uDAAe,CAAA;IACf,6DAAkB,CAAA;IAClB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,mDAAgB,CAAA;IAChB,6CAAa,CAAA;IACb,4CAAY,CAAA;IACZ,4CAAY,CAAA;IACZ,gDAAc,CAAA;IACd,6DAAoB,CAAA;IACpB,qDAAgB,CAAA;IAChB,yCAAa,CAAA;IACb,mDAA6C,CAAA;IAC7C,oDAA0B,CAAA;IAC1B,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,8DAAqC,CAAA;IACrC,sDAAiC,CAAA;IACjC,wDAAkC,CAAA;IAClC,sDAAiC,CAAA;IACjC,0DAAmC,CAAA;IACnC,uEAA0C,CAAA;IAC1C,2EAA8C,CAAA;IAC9C,sDAAkB,CAAA;IAClB,+DAAkC,CAAA;IAClC,oDAA0B,CAAA;IAC1B,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,8DAAqC,CAAA;IACrC,4DAAoC,CAAA;IACpC,uEAA0C,CAAA;IAC1C,2EAA8C,CAAA;IAC9C,yEAA+C,CAAA;IAC/C,oDAAiB,CAAA;IACjB,+DAAkC,CAAA;IAClC,wDAA8B,CAAA;IAC9B,4DAAsC,CAAA;IACtC,4DAAsC,CAAA;IACtC,kEAAyC,CAAA;IACzC,gEAAwC,CAAA;IACxC,wDAAoC,CAAA;IACpC,0DAAqC,CAAA;IACrC,wDAAqB,CAAA;IACrB,uDAA+C,CAAA;IAC/C,qDAAgB,CAAA;IAChB,yCAAU,CAAA;AACd,CAAC,EApDW,SAAS,KAAT,SAAS,QAoDpB;AACD,MAAM,CAAN,IAAY,MAUX;AAVD,WAAY,MAAM;IACd,mCAAQ,CAAA;IACR,yDAAsB,CAAA;IACtB,2CAAe,CAAA;IACf,+CAAiB,CAAA;IACjB,qDAAoB,CAAA;IACpB,kDAAkB,CAAA;IAClB,sDAAoB,CAAA;IACpB,0DAAsB,CAAA;IACtB,+DAAwB,CAAA;AAC5B,CAAC,EAVW,MAAM,KAAN,MAAM,QAUjB;AAwDD,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IAEpB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,6DAAe,CAAA;IACf,uDAAY,CAAA;IACZ,2DAAc,CAAA;IACd,yDAAa,CAAA;AACjB,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB"}
|
package/package.json
CHANGED
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
let mouseDownTime: number = 0;
|
|
37
37
|
let mouseTimer: number = -1;
|
|
38
38
|
let nameTimer: number = -1;
|
|
39
|
+
let nextIndex: number = -1;
|
|
39
40
|
const showName = ref(false);
|
|
40
41
|
|
|
41
42
|
watch([appState.bodyHeight, appState.pageWidth], () => {
|
|
@@ -382,9 +383,26 @@
|
|
|
382
383
|
infoDialog.value = false;
|
|
383
384
|
clearName();
|
|
384
385
|
const item = items[index.value];
|
|
386
|
+
if (mediaAppConfig.useImagePreload) {
|
|
387
|
+
if (index.value != nextIndex) {
|
|
388
|
+
item.blob = "/pwa/img/Wait.png";
|
|
389
|
+
createBlob(item);
|
|
390
|
+
}
|
|
391
|
+
}
|
|
392
|
+
else {
|
|
393
|
+
item.blob = getUrl(item);
|
|
394
|
+
}
|
|
385
395
|
nameTimer = window.setTimeout(() => { onLoad(item); }, 200);
|
|
386
396
|
}
|
|
387
397
|
function onLoad(item: IPictureFile) { // img loaded or cached
|
|
398
|
+
if (item.blob && item.blob.startsWith("blob")) {
|
|
399
|
+
window.URL.revokeObjectURL(item.blob);
|
|
400
|
+
}
|
|
401
|
+
const next = index.value + 1;
|
|
402
|
+
if (next < items.length && next > nextIndex) {
|
|
403
|
+
nextIndex = next;
|
|
404
|
+
createBlob (items[nextIndex]);
|
|
405
|
+
}
|
|
388
406
|
clearName();
|
|
389
407
|
const idx = item.Url.lastIndexOf('.');
|
|
390
408
|
const name = item.Url.substr(0, idx);
|
|
@@ -402,6 +420,14 @@
|
|
|
402
420
|
}
|
|
403
421
|
}
|
|
404
422
|
}
|
|
423
|
+
function createBlob (item: IPictureFile) {
|
|
424
|
+
const url = getUrl (item).substr(38); // trim mediaserver url
|
|
425
|
+
mediaService.getImage(url)
|
|
426
|
+
.then((blob) => {
|
|
427
|
+
item.blob = window.URL.createObjectURL(blob);
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
}
|
|
405
431
|
</script>
|
|
406
432
|
|
|
407
433
|
<template>
|
|
@@ -409,7 +435,7 @@
|
|
|
409
435
|
<v-carousel ref="carousel" hide-delimiters :show-arrows="false" v-model="index"
|
|
410
436
|
:width="width" :height="height" :cycle="cycle" :interval="interval"
|
|
411
437
|
@click="onClick" @mousedown="onMouseDown" @update:modelValue="onUpdate">
|
|
412
|
-
<v-carousel-item v-for="item in items" :key="item.DLNAID" :src="
|
|
438
|
+
<v-carousel-item v-for="item in items" :key="item.DLNAID" :src="item.blob" :alt="item.Name" :width="getWidth(item)" :height="getHeight(item)"
|
|
413
439
|
@load="onLoad(item)" @loadstart="clearName()">
|
|
414
440
|
<h2 v-if="showName" class="imgtext">{{itemName}}</h2>
|
|
415
441
|
</v-carousel-item>
|