Heim  >  Fragen und Antworten  >  Hauptteil

javascript – IOS WeChat-Audio-Tag kann nicht über Touchend abgespielt werden

Um ein H5-Minispiel zu erstellen, müssen Sie die Taste lange drücken und wieder loslassen, um einen Soundeffekt abzuspielen

GameStart.addEventListener('touchend', function(event) {
    event.preventDefault();
    Audio.play();
}, false);

Der Mechanismus von IOS muss vom Benutzer manuell ausgelöst werden, aber das sollte für mich als richtig angesehen werden?
Ich verstehe es wirklich nicht, aber ich hoffe, jemand kann es erklären, oder? Gibt es eine Lösung, die meine Anforderungen erfüllen kann?
Drücken Sie die Taste lange und lassen Sie sie los, um den Soundeffekt abzuspielen.

给我你的怀抱给我你的怀抱2689 Tage vor932

Antworte allen(2)Ich werde antworten

  • 天蓬老师

    天蓬老师2017-06-30 09:58:15

    Note: On iOS, the Web Audio API requires sounds to be triggered from an explicit user action, such as a tap. Calling noteOn() from an onload event will not play sound.

    我搜了半天也没找到苹果关于user action的确切定义,可能touchend不属于user action
    就目前尝试,click与touchstart是可行的

    你可以尝试在touchstart时执行Audio.load(),在touchend是再执行Audio.play();

    Antwort
    0
  • ringa_lee

    ringa_lee2017-06-30 09:58:15

    这个方法哟,解决了!

    Antwort
    0
  • StornierenAntwort