मेरे पास एक छिपी हुई <audio>
ऑब्जेक्ट वाला पृष्ठ है जिसे जावास्क्रिप्ट के माध्यम से एक कस्टम बटन का उपयोग करके शुरू किया जा रहा है और बंद कर दिया गया है। (कारण मैं बटन को कस्टमाइज़ करना चाहता हूं, और एक ऑडियो प्लेयर ड्राइंग करना किसी भी तरह से आईपैड पर प्रतिपादन प्रदर्शन को नष्ट करना प्रतीत होता है)। एक सरल उदाहरण (coffeescript में):एचटीएमएल 5 ऑडियो ऑब्जेक्ट आईपैड पर नहीं चलाया जाता है (जब सेटटाइम से कहा जाता है)
// Works fine on all browsers
constructor: (@_button, @_audio) ->
@_button.on 'click', @_play // Bind button's click event with jQuery
_play: (e) =>
@_audio[0].play() // Call play() on audio element
ऑडियो ठीक खेलता है जब एक समारोह एक click
घटना के लिए बाध्य से शुरू हो रहा है, लेकिन मैं वास्तव में फ़ाइल से पहले तो निभाता है मैं एक setTimeout
अंदर .play()
डाल एक एनीमेशन पूरा करना चाहते हैं। हालांकि मैं सिर्फ यह काम करने के लिए नहीं मिल सकता है:
// Will not play on iPad
constructor: (@_button, @_audio) ->
@_button.on 'click', @_play // Bind button's click event with jQuery
_play: (e) =>
setTimeout (=> // Declare a 300ms timeout
@_audio[0].play() // Call play() on audio element
), 300
मैं देख लिया है कि @_audio
(this._audio
) दायरे में और उसके play()
विधि मौजूद है कि है। यह आईपैड पर क्यों काम नहीं करता है?
संपादित: ऐसा होता है, वास्तव में ऊपर सरलीकृत परीक्षण का मामला काम करता है। नीचे @apsillers का उत्तर और इस पर मेरी टिप्पणियां देखें।
बस जोड़ने के लिए मैंने सिम्युलेटर _and_ पर एक वास्तविक आईपैड पर इसका परीक्षण किया है। –
मुझे लगता है कि आप एक स्पष्ट उपयोगकर्ता कार्रवाई के बिना आईपैड/आईफोन में एक वीडियो/ऑडियो नहीं चला सकते हैं ... बैंडविड्थ खपत – fcalderan
के लिए, मैंने प्ले विधि के आसपास 'कोशिश/पकड़' रखा है और वहां नहीं है प्रतीत होता है कि कोई त्रुटि फेंक दिया गया है। –