Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尝试实现声音功能时,按钮会消失_Javascript - Fatal编程技术网

Javascript 尝试实现声音功能时,按钮会消失

Javascript 尝试实现声音功能时,按钮会消失,javascript,Javascript,我是javascript新手,下面的代码是一个PayPal按钮,用于捕获订单。我想在订单被批准时显示一个声音,所以在“OnApprove”部分我实现了这一点。问题在于,当试图修改本文中的代码时,按钮会消失: 我想在代码末尾弹出警报时播放声音。音频正常,我手动测试过,正常工作,但我不知道如何在警报弹出时以编程方式播放此声音,或者只是在onApprove中播放。代码在这里,按钮就消失了 <script> paypal.Buttons({ createOrder: functi

我是javascript新手,下面的代码是一个PayPal按钮,用于捕获订单。我想在订单被批准时显示一个声音,所以在“OnApprove”部分我实现了这一点。问题在于,当试图修改本文中的代码时,按钮会消失:

我想在代码末尾弹出警报时播放声音。音频正常,我手动测试过,正常工作,但我不知道如何在警报弹出时以编程方式播放此声音,或者只是在onApprove中播放。代码在这里,按钮就消失了

<script>
  paypal.Buttons({
    createOrder: function(data, actions) {
      // This function sets up the details of the transaction, including the amount and line item details.
      return actions.order.create({
        application_context: {

                shipping_preference: 'NO_SHIPPING',
            },
        purchase_units: [{
          amount: {
            value: '1.99'
          }
        }]
      });
    },

onApprove: function(data, actions) {

const audioFiles = [{
    mimeType: 'audio/opus',
    src: 'static/payment_success.opus'
  },
  {
    mimeType: 'audio/mp4',
    src: 'static/payment_success.mp4'
  },
  {
    mimeType: 'audio/wav',
    src: 'static/payment_success.wav'
  },
  {
    mimeType: 'audio/ogg',
    src: 'static/payment_success.ogg'
  },
  {
    mimeType: 'audio/aac',
    src: 'static/payment_success.aac'
  },
  {
    mimeType: 'audio/ac3',
    src: 'static/payment_success.ac3'
  },
  {
    mimeType: 'audio/aiff',
    src: 'static/payment_success.aiff'
  }
]

const map = {
  probably: 2,
  maybe: 1
};

  var bleep = new Audio();

  let verifiedAudioFiles = audioFiles.map(pr => ({
    ...pr,
    canPlay: bleep.canPlayType(pr.mimeType)
  }))

  verifiedAudioFiles.sort((prev, next) => (map[next.canPlay] || 0) - (map[prev.canPlay] || 0));

  console.log(verifiedAudioFiles);

  for(let {src, mimeType} of verifiedAudioFiles) {
    try {
      bleep.setAttribute("src", src);
      bleep.currentTime = 0;
      await bleep.play();
      console.log(`playing with mime type ${mimeType}`);
      break;
    } catch (error) {
      console.log(error);
      continue;
    }
  }

})
      // This function captures the funds from the transaction.
      return actions.order.capture().then(function(details) {
        // This function shows a transaction success message to your buyer.
        window.location.href = "{{ url_for ('payment_success', token=token ) }}";
        alert('Tu pago se ha procesado con éxito')
      });
    }
  }).render('#paypal-button-container');
  //This function displays Smart Payment Buttons on your web page.
</script>

贝宝,按钮({
createOrder:函数(数据、操作){
//此功能设置交易的详细信息,包括金额和行项目详细信息。
return actions.order.create({
应用程序上下文:{
配送首选项:“无配送”,
},
购买单位:[{
金额:{
值:“1.99”
}
}]
});
},
onApprove:功能(数据、操作){
常量音频文件=[{
mimeType:“音频/作品”,
src:“静态/支付成功。opus”
},
{
mimeType:“音频/mp4”,
src:“静态/支付成功.mp4”
},
{
mimeType:'音频/波形',
src:“静态/支付成功.wav”
},
{
mimeType:'audio/ogg',
src:“静态/支付成功.ogg”
},
{
mimeType:“音频/aac”,
src:“静态/支付成功.aac”
},
{
mimeType:'audio/ac3',
src:“静态/支付成功.ac3”
},
{
mimeType:“音频/aiff”,
src:“静态/支付成功.aiff”
}
]
常数映射={
大概是:2,,
也许:1
};
var bleep=新音频();
让verifiedAudioFiles=audioFiles.map(pr=>({
…公共关系,
canPlay:bleep.canPlayType(pr.mimeType)
}))
已验证的AudioFiles.sort((上一个,下一个)=>(映射[next.canPlay]| | 0)-(映射[prev.canPlay]| | 0));
日志(已验证的音频文件);
对于(已验证音频文件的let{src,mimeType}){
试一试{
bleep.setAttribute(“src”,src);
bleep.currentTime=0;
等待哔哔声。玩();
log(`playingwithmimetype${mimeType}`);
打破
}捕获(错误){
console.log(错误);
继续;
}
}
})
//此函数用于捕获交易中的资金。
返回actions.order.capture().then(函数(详细信息){
//此功能向买家显示交易成功消息。
window.location.href=“{url\u for('payment\u success',token=token)}”;
警报('Tu pago se ha procesado conéxito')
});
}
}).render(“#贝宝按钮容器”);
//此功能在网页上显示智能支付按钮。