小编gau*_*lla的帖子

js/html5 audio:为什么在iOS Safari上没有触发canplaythrough?

我使用下面的代码预加载一个音频文件数组(在用户与启动该过程的按钮交互后).在所有音频文件触发"canplaythrough"后,代码继续执行:

var loaded = 0;
function loadedAudio() {
    // this will be called every time an audio file is loaded
    // we keep track of the loaded files vs the requested files
    loaded++;
    console.log(loaded + " audio files loaded!");
    if (loaded == audioFiles.length){
      // all have loaded
      main();
    }
}

function preloadsounds()
{
  $("#loader").show();
  console.log(level.config);
  audioFiles = level.config.soundfiles;

  // we start preloading all the audio files with html audio
  for (var i in audioFiles) {
      preloadAudio(audioFiles[i]);
  }

}

function preloadAudio(url) …
Run Code Online (Sandbox Code Playgroud)

javascript html5 html5-audio

6
推荐指数
1
解决办法
3426
查看次数

为什么通过相机上传图像可以在 mobile-safari 上使用,但不能在 iOS PWA 上使用?

我有一个具有 PWA 功能的网页。

在 iOS safari 上,我确实收到了常见的操作系统对话框,询问我是否要拍照或从照片库上传图片:

在此输入图像描述

通过菜单“添加到主屏幕”按钮将其“安装”为 PWA 并通过主屏幕启动后,我仍然得到相同的选项,“从库中选择”仍然有效,但是当选择“拍照”时,iOS 相机应用程序按预期打开,但保持全黑状态。

html:

<head>

  <meta charset="utf-8">
  <title>dingsda user interface 2</title>

  <meta name="apple-mobile-web-app-capable" content="yes" />
  <meta name="mobile-web-app-capable" content="yes">
  <link rel="manifest" href="manifest.json">

  (...)

  <label class="fileContainer ui-btn">
    <input type="file" accept="image/jpeg" id="photo_upload" multiple data-role="none"/>
   </label>
Run Code Online (Sandbox Code Playgroud)

仅连接 JavaScript:

document.getElementById("photo_upload").addEventListener("change",
function(){
  console.log("got pic, will resize now:");
  resizeBase64image(document.getElementById("photo_upload"),
  function(base64img){
    console.log("resized pic. will add it to src");
    document.getElementById("addPhoto").src = base64img;
  });
});
Run Code Online (Sandbox Code Playgroud)

我没有任何想法,也没有发现任何有关限制的线索。另外:无论如何,它似乎不应该提示对话框或照片应用程序。我很高兴收到任何建议。使用 HTML 文件输入或(如果可能)替代方案来修复它。

html javascript mobile-safari ios progressive-web-apps

5
推荐指数
1
解决办法
9910
查看次数

如何测试具有特定名称的组件是否在 Composition API 中注册(Vue 3)

我有一个通过名称加载动态组件的模板:

<template>
      <div>
        <div>
          <div>
            <component
              :is="getFormRenderer"
            ></component>
          </div>
        </div>
      </div>
</template>
Run Code Online (Sandbox Code Playgroud)

getFormRenderer返回一个字符串(来自 API),该字符串通过名称标识组件。

所有可能的子组件(仅在本示例中telegram_send_message,并且time_time已导入并注册:


<script>
import { useStore } from "vuex";
import { computed } from "vue";

import exampleComponentOne from "@/components/forms/exampleComponentOne.vue";
import exampleComponentTwo from "@/components/forms/exampleComponentTwo.vue";
import defaultComponentTwo from "@/components/forms/defaultComponent.vue";

export default {
  name: "ActionEditor",
  setup() {
    const store = useStore();

    const getFormRenderer = computed(() => {
      return (
        store.state.level.actionSelected.plugin
      );
    });
    return {
      getFormRenderer,
    };
  },
  components: {
    exampleComponentOne,
    exampleComponentTwo,
    defaultComponent
  },
};
</script> …
Run Code Online (Sandbox Code Playgroud)

javascript vue.js vue-component vuejs3

2
推荐指数
1
解决办法
3152
查看次数

ThreeJS - 如何测量 x/y/z 给定点的光强度/像素值?

我想知道如何获取场景中给定点的光强度和/或像素值(rgba)。

例如,我有一个场景,移动的光照射在立方体上,并且想要测量立方体上某些点的亮度:

// Our Javascript will go here.
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera( 75, window.innerWidth / window.innerHeight, 0.1, 1000 );

var renderer = new THREE.WebGLRenderer({ preserveDrawingBuffer: true });
renderer.setSize( window.innerWidth, window.innerHeight );
document.body.appendChild( renderer.domElement );

var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshLambertMaterial( );
var cube = new THREE.Mesh( geometry, material );
cube.rotation.x += 0.4;
cube.rotation.y += 0.4;
scene.add( cube );

var plane_geo = new THREE.PlaneGeometry(2,2,2);
var plane = …
Run Code Online (Sandbox Code Playgroud)

javascript 3d three.js

1
推荐指数
1
解决办法
1027
查看次数