@tarojs/taro-h5 4.0.8-beta.1 → 4.0.8
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.
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { isMobile } from 'is-mobile';
|
|
3
|
+
import { getDeviceInfo } from '../../base/system.js';
|
|
3
4
|
import '../../ui/index.js';
|
|
4
5
|
import { shouldBeObject, getParameterError } from '../../../utils/index.js';
|
|
5
6
|
import { MethodHandler } from '../../../utils/handler.js';
|
|
@@ -128,6 +129,7 @@ const chooseMedia = function (options_1) {
|
|
|
128
129
|
};
|
|
129
130
|
if (/^video\//.test(res.fileType)) {
|
|
130
131
|
// Video
|
|
132
|
+
const isIOS = getDeviceInfo().system.toLowerCase().includes('ios');
|
|
131
133
|
const video = document.createElement('video');
|
|
132
134
|
const reader = new FileReader();
|
|
133
135
|
video.crossOrigin = 'Anonymous';
|
|
@@ -151,6 +153,7 @@ const chooseMedia = function (options_1) {
|
|
|
151
153
|
resolve(res);
|
|
152
154
|
};
|
|
153
155
|
video.onerror = e => reject(e);
|
|
156
|
+
isIOS && video.load();
|
|
154
157
|
});
|
|
155
158
|
}
|
|
156
159
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chooseMedia.js","sources":["../../../../src/api/media/video/chooseMedia.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { isMobile } from 'is-mobile'\n\nimport { showActionSheet } from '../../../api/ui'\nimport { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * 拍摄或从手机相册中选择图片或视频。\n */\nexport const chooseMedia = async function (\n options: Taro.chooseMedia.Option,\n methodName = 'chooseMedia',\n): Promise<Taro.chooseMedia.SuccessCallbackResult> {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n count = 9,\n mediaId = 'taroChooseMedia',\n mediaType = ['image', 'video'],\n sourceType = ['album', 'camera'],\n // sizeType = ['original', 'compressed'], // TODO 考虑通过 ffmpeg 支持压缩\n // maxDuration = 10, // TODO 考虑通过 ffmpeg 剪裁视频\n camera = 'back',\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n const withImage = mediaType.length < 1 || mediaType.indexOf('image') > -1\n const withVideo = mediaType.length < 1 || mediaType.indexOf('video') > -1\n const res: Partial<Taro.chooseMedia.SuccessCallbackResult> = {\n tempFiles: [],\n type: withImage && withVideo ? 'mix' : withImage ? 'image' : 'video',\n }\n\n if (count && typeof count !== 'number') {\n res.errMsg = getParameterError({\n para: 'count',\n correct: 'Number',\n wrong: count\n })\n return handle.fail(res)\n }\n\n let el = document.getElementById(mediaId)\n if (!el) {\n el = document.createElement('input')\n el.setAttribute('type', 'file')\n el.setAttribute('id', mediaId)\n el.setAttribute('style', 'position: fixed; top: -4000px; left: -3000px; z-index: -300;')\n }\n\n if (count > 1) {\n el.setAttribute('multiple', 'multiple')\n } else {\n el.removeAttribute('multiple')\n }\n\n // Note: Input 仅在移动端支持 capture 属性,可以使用 getUserMedia 替代(暂不考虑)\n if (isMobile()) {\n if (sourceType.length > 1 || sourceType.length < 1) {\n try {\n const { tapIndex } = await showActionSheet({\n itemList: ['拍摄', '从相册选择'],\n }, methodName)\n sourceType.splice(0, sourceType.length, tapIndex === 0 ? 'camera' : 'album')\n } catch (e) {\n return handle.fail({\n errMsg: e.errMsg?.replace('^.*:fail ', '')\n })\n }\n }\n }\n if (sourceType.includes('camera')) {\n el.setAttribute('capture', camera === 'front' ? 'user' : 'environment')\n } else {\n el.removeAttribute('capture')\n }\n\n if (res.type === 'image') {\n el.setAttribute('accept', 'image/*')\n } else if (res.type === 'video') {\n el.setAttribute('accept', 'video/*')\n } else {\n el.setAttribute('accept', 'image/*, video/*')\n }\n return new Promise<Taro.chooseMedia.SuccessCallbackResult>((resolve, reject) => {\n if (!el) return\n document.body.appendChild(el)\n el.onchange = async function (e) {\n const target = e.target as HTMLInputElement\n if (target) {\n const files = target.files || []\n const arr = [...files]\n await Promise.all(\n arr.map(async item => {\n try {\n res.tempFiles?.push(await loadMedia(item))\n } catch (error) {\n console.error(error)\n }\n })\n )\n }\n handle.success(res, { resolve, reject })\n target.value = ''\n }\n el.onabort = () => handle.fail({ errMsg: 'abort' }, { resolve, reject })\n el.oncancel = () => handle.fail({ errMsg: 'cancel' }, { resolve, reject })\n el.onerror = e => handle.fail({ errMsg: e.toString() }, { resolve, reject })\n el.click()\n }).finally(() => {\n if (!el) return\n document.body.removeChild(el)\n })\n\n function loadMedia (file: File): Promise<Taro.chooseMedia.ChooseMedia> {\n const dataUrl = URL.createObjectURL(file)\n const res = {\n tempFilePath: dataUrl,\n size: file.size,\n duration: 0,\n height: 0,\n width: 0,\n thumbTempFilePath: '',\n fileType: file.type,\n originalFileObj: file\n }\n\n if (/^video\\//.test(res.fileType)) {\n // Video\n const video = document.createElement('video')\n const reader = new FileReader()\n video.crossOrigin = 'Anonymous'\n video.preload = 'metadata'\n video.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n // 对齐旧版本实现\n reader.onload = (event) => {\n res.tempFilePath = event.target?.result as string\n }\n reader.onerror = e => reject(e)\n reader.readAsDataURL(res.originalFileObj)\n\n video.onloadedmetadata = () => {\n res.duration = video.duration\n res.height = video.videoHeight\n res.width = video.videoWidth\n }\n video.oncanplay = () => {\n res.thumbTempFilePath = getThumbTempFilePath(video, res.height, res.width, 0.8)\n resolve(res)\n }\n video.onerror = e => reject(e)\n })\n } else {\n // Image\n const img = new Image()\n /** 允许图片和 canvas 跨源使用\n * https://developer.mozilla.org/zh-CN/docs/Web/HTML/CORS_enabled_image\n */\n img.crossOrigin = 'Anonymous'\n img.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n if (img.complete) {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n } else {\n img.onload = () => {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n }\n img.onerror = e => reject(e)\n }\n })\n }\n }\n\n function getThumbTempFilePath (el: CanvasImageSource, height = 0, width = height, quality = 0.8) {\n const max = 256\n const canvas = document.createElement('canvas')\n if (height > max || width > max) {\n const radio = height / width\n if (radio > 1) {\n height = max\n width = height / radio\n } else {\n width = max\n height = width * radio\n }\n }\n canvas.height = height\n canvas.width = width\n\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(el, 0, 0, canvas.width, canvas.height)\n return canvas.toDataURL('image/jpeg', quality)\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chooseMedia.js","sources":["../../../../src/api/media/video/chooseMedia.ts"],"sourcesContent":["import Taro from '@tarojs/api'\nimport { isMobile } from 'is-mobile'\n\nimport { getDeviceInfo } from '../../../api/base/system'\nimport { showActionSheet } from '../../../api/ui'\nimport { getParameterError, shouldBeObject } from '../../../utils'\nimport { MethodHandler } from '../../../utils/handler'\n\n/**\n * 拍摄或从手机相册中选择图片或视频。\n */\nexport const chooseMedia = async function (\n options: Taro.chooseMedia.Option,\n methodName = 'chooseMedia',\n): Promise<Taro.chooseMedia.SuccessCallbackResult> {\n // options must be an Object\n const isObject = shouldBeObject(options)\n if (!isObject.flag) {\n const res = { errMsg: `${methodName}:fail ${isObject.msg}` }\n console.error(res.errMsg)\n return Promise.reject(res)\n }\n\n const {\n count = 9,\n mediaId = 'taroChooseMedia',\n mediaType = ['image', 'video'],\n sourceType = ['album', 'camera'],\n // sizeType = ['original', 'compressed'], // TODO 考虑通过 ffmpeg 支持压缩\n // maxDuration = 10, // TODO 考虑通过 ffmpeg 剪裁视频\n camera = 'back',\n success,\n fail,\n complete,\n } = options\n const handle = new MethodHandler({ name: methodName, success, fail, complete })\n const withImage = mediaType.length < 1 || mediaType.indexOf('image') > -1\n const withVideo = mediaType.length < 1 || mediaType.indexOf('video') > -1\n const res: Partial<Taro.chooseMedia.SuccessCallbackResult> = {\n tempFiles: [],\n type: withImage && withVideo ? 'mix' : withImage ? 'image' : 'video',\n }\n\n if (count && typeof count !== 'number') {\n res.errMsg = getParameterError({\n para: 'count',\n correct: 'Number',\n wrong: count\n })\n return handle.fail(res)\n }\n\n let el = document.getElementById(mediaId)\n if (!el) {\n el = document.createElement('input')\n el.setAttribute('type', 'file')\n el.setAttribute('id', mediaId)\n el.setAttribute('style', 'position: fixed; top: -4000px; left: -3000px; z-index: -300;')\n }\n\n if (count > 1) {\n el.setAttribute('multiple', 'multiple')\n } else {\n el.removeAttribute('multiple')\n }\n\n // Note: Input 仅在移动端支持 capture 属性,可以使用 getUserMedia 替代(暂不考虑)\n if (isMobile()) {\n if (sourceType.length > 1 || sourceType.length < 1) {\n try {\n const { tapIndex } = await showActionSheet({\n itemList: ['拍摄', '从相册选择'],\n }, methodName)\n sourceType.splice(0, sourceType.length, tapIndex === 0 ? 'camera' : 'album')\n } catch (e) {\n return handle.fail({\n errMsg: e.errMsg?.replace('^.*:fail ', '')\n })\n }\n }\n }\n if (sourceType.includes('camera')) {\n el.setAttribute('capture', camera === 'front' ? 'user' : 'environment')\n } else {\n el.removeAttribute('capture')\n }\n\n if (res.type === 'image') {\n el.setAttribute('accept', 'image/*')\n } else if (res.type === 'video') {\n el.setAttribute('accept', 'video/*')\n } else {\n el.setAttribute('accept', 'image/*, video/*')\n }\n return new Promise<Taro.chooseMedia.SuccessCallbackResult>((resolve, reject) => {\n if (!el) return\n document.body.appendChild(el)\n el.onchange = async function (e) {\n const target = e.target as HTMLInputElement\n if (target) {\n const files = target.files || []\n const arr = [...files]\n await Promise.all(\n arr.map(async item => {\n try {\n res.tempFiles?.push(await loadMedia(item))\n } catch (error) {\n console.error(error)\n }\n })\n )\n }\n handle.success(res, { resolve, reject })\n target.value = ''\n }\n el.onabort = () => handle.fail({ errMsg: 'abort' }, { resolve, reject })\n el.oncancel = () => handle.fail({ errMsg: 'cancel' }, { resolve, reject })\n el.onerror = e => handle.fail({ errMsg: e.toString() }, { resolve, reject })\n el.click()\n }).finally(() => {\n if (!el) return\n document.body.removeChild(el)\n })\n\n function loadMedia (file: File): Promise<Taro.chooseMedia.ChooseMedia> {\n const dataUrl = URL.createObjectURL(file)\n const res = {\n tempFilePath: dataUrl,\n size: file.size,\n duration: 0,\n height: 0,\n width: 0,\n thumbTempFilePath: '',\n fileType: file.type,\n originalFileObj: file\n }\n\n if (/^video\\//.test(res.fileType)) {\n // Video\n const isIOS = getDeviceInfo().system.toLowerCase().includes('ios')\n const video = document.createElement('video')\n const reader = new FileReader()\n video.crossOrigin = 'Anonymous'\n video.preload = 'metadata'\n video.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n // 对齐旧版本实现\n reader.onload = (event) => {\n res.tempFilePath = event.target?.result as string\n }\n reader.onerror = e => reject(e)\n reader.readAsDataURL(res.originalFileObj)\n\n video.onloadedmetadata = () => {\n res.duration = video.duration\n res.height = video.videoHeight\n res.width = video.videoWidth\n }\n video.oncanplay = () => {\n res.thumbTempFilePath = getThumbTempFilePath(video, res.height, res.width, 0.8)\n resolve(res)\n }\n video.onerror = e => reject(e)\n isIOS && video.load()\n })\n } else {\n // Image\n const img = new Image()\n /** 允许图片和 canvas 跨源使用\n * https://developer.mozilla.org/zh-CN/docs/Web/HTML/CORS_enabled_image\n */\n img.crossOrigin = 'Anonymous'\n img.src = res.tempFilePath\n\n return new Promise((resolve, reject) => {\n if (img.complete) {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n } else {\n img.onload = () => {\n res.height = img.height\n res.width = img.width\n res.thumbTempFilePath = getThumbTempFilePath(img, res.height, res.width, 0.8)\n resolve(res)\n }\n img.onerror = e => reject(e)\n }\n })\n }\n }\n\n function getThumbTempFilePath (el: CanvasImageSource, height = 0, width = height, quality = 0.8) {\n const max = 256\n const canvas = document.createElement('canvas')\n if (height > max || width > max) {\n const radio = height / width\n if (radio > 1) {\n height = max\n width = height / radio\n } else {\n width = max\n height = width * radio\n }\n }\n canvas.height = height\n canvas.width = width\n\n const ctx = canvas.getContext('2d')\n ctx?.drawImage(el, 0, 0, canvas.width, canvas.height)\n return canvas.toDataURL('image/jpeg', quality)\n }\n}\n"],"names":[],"mappings":";;;;;;;;AAQA;;AAEG;AACU,MAAA,WAAW,GAAG,UAAA,SAAA,EAAA;yDACzB,OAAgC,EAChC,UAAU,GAAG,aAAa,EAAA;;;AAG1B,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AAClB,YAAA,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,CAAA,EAAG,UAAU,CAAA,MAAA,EAAS,QAAQ,CAAC,GAAG,CAAA,CAAE,EAAE,CAAA;AAC5D,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACzB,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SAC3B;QAED,MAAM,EACJ,KAAK,GAAG,CAAC,EACT,OAAO,GAAG,iBAAiB,EAC3B,SAAS,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,EAC9B,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC;;;QAGhC,MAAM,GAAG,MAAM,EACf,OAAO,EACP,IAAI,EACJ,QAAQ,GACT,GAAG,OAAO,CAAA;AACX,QAAA,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;AAC/E,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AACzE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AACzE,QAAA,MAAM,GAAG,GAAoD;AAC3D,YAAA,SAAS,EAAE,EAAE;AACb,YAAA,IAAI,EAAE,SAAS,IAAI,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO;SACrE,CAAA;AAED,QAAA,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AACtC,YAAA,GAAG,CAAC,MAAM,GAAG,iBAAiB,CAAC;AAC7B,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,CAAC,CAAA;AACF,YAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;SACxB;QAED,IAAI,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QACzC,IAAI,CAAC,EAAE,EAAE;AACP,YAAA,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;AACpC,YAAA,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAC/B,YAAA,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AAC9B,YAAA,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,8DAA8D,CAAC,CAAA;SACzF;AAED,QAAA,IAAI,KAAK,GAAG,CAAC,EAAE;AACb,YAAA,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAA;SACxC;aAAM;AACL,YAAA,EAAE,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;SAC/B;;QAGD,IAAI,QAAQ,EAAE,EAAE;AACd,YAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAClD,gBAAA,IAAI;AACF,oBAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC;AACzC,wBAAA,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;qBAC1B,EAAE,UAAU,CAAC,CAAA;oBACd,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,KAAK,CAAC,GAAG,QAAQ,GAAG,OAAO,CAAC,CAAA;iBAC7E;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,MAAM,CAAC,IAAI,CAAC;wBACjB,MAAM,EAAE,CAAA,EAAA,GAAA,CAAC,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AAC3C,qBAAA,CAAC,CAAA;iBACH;aACF;SACF;AACD,QAAA,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAA,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC,CAAA;SACxE;aAAM;AACL,YAAA,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;SAC9B;AAED,QAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;AACxB,YAAA,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;SACrC;AAAM,aAAA,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE;AAC/B,YAAA,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;SACrC;aAAM;AACL,YAAA,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;SAC9C;QACD,OAAO,IAAI,OAAO,CAAyC,CAAC,OAAO,EAAE,MAAM,KAAI;AAC7E,YAAA,IAAI,CAAC,EAAE;gBAAE,OAAM;AACf,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAC7B,YAAA,EAAE,CAAC,QAAQ,GAAG,UAAgB,CAAC,EAAA;;AAC7B,oBAAA,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B,CAAA;oBAC3C,IAAI,MAAM,EAAE;AACV,wBAAA,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAA;AAChC,wBAAA,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;wBACtB,MAAM,OAAO,CAAC,GAAG,CACf,GAAG,CAAC,GAAG,CAAC,CAAM,IAAI,KAAG,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;;AACnB,4BAAA,IAAI;AACF,gCAAA,CAAA,EAAA,GAAA,GAAG,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;6BAC3C;4BAAC,OAAO,KAAK,EAAE;AACd,gCAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;6BACrB;yBACF,CAAA,CAAC,CACH,CAAA;qBACF;oBACD,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;AACxC,oBAAA,MAAM,CAAC,KAAK,GAAG,EAAE,CAAA;iBAClB,CAAA,CAAA;aAAA,CAAA;YACD,EAAE,CAAC,OAAO,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACxE,EAAE,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YAC1E,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YAC5E,EAAE,CAAC,KAAK,EAAE,CAAA;AACZ,SAAC,CAAC,CAAC,OAAO,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,EAAE;gBAAE,OAAM;AACf,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;AAC/B,SAAC,CAAC,CAAA;QAEF,SAAS,SAAS,CAAE,IAAU,EAAA;YAC5B,MAAM,OAAO,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AACzC,YAAA,MAAM,GAAG,GAAG;AACV,gBAAA,YAAY,EAAE,OAAO;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,CAAC;AACT,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,iBAAiB,EAAE,EAAE;gBACrB,QAAQ,EAAE,IAAI,CAAC,IAAI;AACnB,gBAAA,eAAe,EAAE,IAAI;aACtB,CAAA;YAED,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;;AAEjC,gBAAA,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAClE,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;AAC7C,gBAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAA;AAC/B,gBAAA,KAAK,CAAC,WAAW,GAAG,WAAW,CAAA;AAC/B,gBAAA,KAAK,CAAC,OAAO,GAAG,UAAU,CAAA;AAC1B,gBAAA,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,CAAA;gBAE5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;;AAErC,oBAAA,MAAM,CAAC,MAAM,GAAG,CAAC,KAAK,KAAI;;wBACxB,GAAG,CAAC,YAAY,GAAG,CAAA,EAAA,GAAA,KAAK,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,MAAgB,CAAA;AACnD,qBAAC,CAAA;oBACD,MAAM,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAC/B,oBAAA,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;AAEzC,oBAAA,KAAK,CAAC,gBAAgB,GAAG,MAAK;AAC5B,wBAAA,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;AAC7B,wBAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC,WAAW,CAAA;AAC9B,wBAAA,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAA;AAC9B,qBAAC,CAAA;AACD,oBAAA,KAAK,CAAC,SAAS,GAAG,MAAK;AACrB,wBAAA,GAAG,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;wBAC/E,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,qBAAC,CAAA;oBACD,KAAK,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9B,oBAAA,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;AACvB,iBAAC,CAAC,CAAA;aACH;iBAAM;;AAEL,gBAAA,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAA;AACvB;;AAEG;AACH,gBAAA,GAAG,CAAC,WAAW,GAAG,WAAW,CAAA;AAC7B,gBAAA,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,YAAY,CAAA;gBAE1B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACrC,oBAAA,IAAI,GAAG,CAAC,QAAQ,EAAE;AAChB,wBAAA,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;AACvB,wBAAA,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;AACrB,wBAAA,GAAG,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;wBAC7E,OAAO,CAAC,GAAG,CAAC,CAAA;qBACb;yBAAM;AACL,wBAAA,GAAG,CAAC,MAAM,GAAG,MAAK;AAChB,4BAAA,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAA;AACvB,4BAAA,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;AACrB,4BAAA,GAAG,CAAC,iBAAiB,GAAG,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;4BAC7E,OAAO,CAAC,GAAG,CAAC,CAAA;AACd,yBAAC,CAAA;wBACD,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;qBAC7B;AACH,iBAAC,CAAC,CAAA;aACH;SACF;AAED,QAAA,SAAS,oBAAoB,CAAE,EAAqB,EAAE,MAAM,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,OAAO,GAAG,GAAG,EAAA;YAC7F,MAAM,GAAG,GAAG,GAAG,CAAA;YACf,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;YAC/C,IAAI,MAAM,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,EAAE;AAC/B,gBAAA,MAAM,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;AAC5B,gBAAA,IAAI,KAAK,GAAG,CAAC,EAAE;oBACb,MAAM,GAAG,GAAG,CAAA;AACZ,oBAAA,KAAK,GAAG,MAAM,GAAG,KAAK,CAAA;iBACvB;qBAAM;oBACL,KAAK,GAAG,GAAG,CAAA;AACX,oBAAA,MAAM,GAAG,KAAK,GAAG,KAAK,CAAA;iBACvB;aACF;AACD,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;AACtB,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAA;YAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;YACnC,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;YACrD,OAAO,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA;SAC/C;KACF,CAAA,CAAA;;;;;"}
|
package/dist/index.cjs.js
CHANGED
|
@@ -4481,6 +4481,7 @@ const chooseMedia = function (options_1) {
|
|
|
4481
4481
|
};
|
|
4482
4482
|
if (/^video\//.test(res.fileType)) {
|
|
4483
4483
|
// Video
|
|
4484
|
+
const isIOS = getDeviceInfo().system.toLowerCase().includes('ios');
|
|
4484
4485
|
const video = document.createElement('video');
|
|
4485
4486
|
const reader = new FileReader();
|
|
4486
4487
|
video.crossOrigin = 'Anonymous';
|
|
@@ -4504,6 +4505,7 @@ const chooseMedia = function (options_1) {
|
|
|
4504
4505
|
resolve(res);
|
|
4505
4506
|
};
|
|
4506
4507
|
video.onerror = e => reject(e);
|
|
4508
|
+
isIOS && video.load();
|
|
4507
4509
|
});
|
|
4508
4510
|
}
|
|
4509
4511
|
else {
|