تشغيل الصوت دون الحاجة إلى تثبيت ملحق مشغل الوسائط

StackOverflow https://stackoverflow.com/questions/1883262

سؤال

أحاول تضمين صوت في موقع مزاد. أريد أنه في كل مرة محاولة لشخص ما، سيتم تشغيل الصوت. حاولت بسيطة <embed> علامة مع معرف معين، ثم sound.play() من خلال جافا سكريبت.

الصوت يلعب، ولكن في IE، يطلب من المستخدم الجديد تثبيت ملحق مشغل الوسائط "إذا كان هو / هي يثق في الموقع".

هل هناك طريقة لجعلها تلعب دون هذه الرسالة. التعليمات البرمجية التالية في الصفحة:

في أتش تي أم أل:

<embed src="success.wav" autostart="false" width="0" height="0" id="sound1" 
       enablejavascript="true">

في جافا سكريبت:

function PlaySound(soundObj) {

  var sound = document.getElementById(soundObj);
  sound.Play();
}

والدعوة إلى الوظيفة:

PlaySound("sound1");
هل كانت مفيدة؟

المحلول

إذا كنت مرتاحا يتطلب من المستخدم أن يكون الفلاش، أوصي SoundManager2.. وبعد يستخدم فلاش في الخلفية ولكنه تم تكوينه بالكامل من خلال جافا سكريبت، وهو قابل للتخصيص للغاية.

إذا كنت ترغب في القيام بذلك تماما في المتصفح، يمكنك استخدام <audio> العلامة، ولكن ستجد أنه يعمل فقط في أحدث المتصفحات، وما زال هناك بعض مشكلات المتصفحات الشاملة التي ستضربها. هذه المادة AJAXIAN يعطي نظرة عامة جيدة على كيفية القيام بذلك والتي تدعم المستعرضات التي تنسيقات الصوت.

ملاحظة رأي شخصي، إذا كنت لا تمانع: لا تلعب أصوات الخلفية أو الموسيقى دون أن تسأل المستخدم أولا. أبدا التشغيل التلقائي وتقديم المستخدم دائما خيار إيقاف الصوت أو كتم الصوت.

نصائح أخرى

حسنا، عمل المحلول رائعا مع مدير الصوت 2. Altough ملف التثبيت بأكمله هو 2.8 ميغابايت، وأعتقد أن جزء صغير فقط من استخدامه بالفعل.

ما فعلته هو وضع التعليمات البرمجية التالية في الرأس:

<script type="text/javascript">

soundManager.url = '<?php echo $root_address; ?>/js/soundmanager/swf/'; 
soundManager.debugMode = false;

soundManager.onload = function() {
  var mySound = soundManager.createSound({
    id: 'aSound',
    url: '<?php echo $root_address; ?>/success.mp3'
  });
}
</script>

واستبدل الدعوة إلى وظيفة تشغيل الصوت مع هذا الرمز:

soundManager.play('aSound');

لقد استخدمت أبسط API للقيام بذلك.

شكرا لك مرة أخرى!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top