AS3 почему Звуковой эффект не работает на Android?

Я создал довольно простое приложение, используя Adobe Animate и AS3, в котором есть несколько кнопок, которые должны воспроизводить звук при нажатии на них. при запуске теста приложения звуки работают нормально. но при тестировании/отладке приложения на эмуляторе Android или устройстве Android звук не работает.

Звуковой файл с именем click.mp3 загружается в библиотеку Animate. В нем есть файл класса Clickскриншот настройки звука в Animate

Вот пример моего кода.

Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT; //importing touch mode
import flash.events.TouchEvent;
import flash.display.Sprite; //importing sprite mode
import flash.text.TextFormat;

var mysound: Click = new Click(); // Sound mode

var sumButton: int; // Variable for Master Sum button 
var digiButton: int; // Variable for Master Digi Button
var masterArray: Array = new Array(); //Master array veriable
sumButton = 0;
digiButton = 0;

// Text Format for the sum buttons --------------------------------------------------------------------------
var newFormat: TextFormat = new TextFormat();
newFormat.size = 52;
newFormat.font = "Arial";
newFormat.align = "center";

//Sum Button 2 ------------------------------------------------
var square2: Sprite = new Sprite();
square2.graphics.beginFill(0x666666);
square2.graphics.drawRect(20, 190, 65, 65);
square2.graphics.endFill();
square2.buttonMode = true;
square2.addEventListener(TouchEvent.TOUCH_TAP, myTap2);

var myTF2: TextField = new TextField();
myTF2.x = 20;
myTF2.y = 190;
myTF2.width = 65;
myTF2.height = 65;
myTF2.border = true;
myTF2.borderColor = 0x10AD63;
myTF2.textColor = 0xFFFF99;
myTF2.wordWrap = false;
myTF2.appendText("2");
myTF2.setTextFormat(newFormat);

square2.addChild(myTF2);
this.addChild(square2);

function myTap2(event: TouchEvent): void {
    sumButton = 2;
    mysound.play();

}

Вот как выглядит код клика класса:

package  {
    
    import flash.media.Sound;
    
    
    public class Click extends Sound {
        
        
        public function Click() {
            // constructor code
        }
    }
    
}

Почему не воспроизводится звук на Android?


person Steve Ben-Ari    schedule 28.10.2020    source источник
comment
Проверьте, действительно ли обработчик вызывается при касании. Если это не так, попробуйте использовать MouseEvent.CLICK вместо события касания.   -  person Organis    schedule 28.10.2020
comment
Будет ли Android распознавать мышь даже как касание?   -  person Steve Ben-Ari    schedule 28.10.2020
comment
Проверьте это: help.adobe. com/en_US/FlashPlatform/reference/actionscript/3/   -  person Organis    schedule 29.10.2020


Ответы (2)


Решение заключалось в том, чтобы проверить настройки переопределения звука в настройках публикации.

Настройка звука в настройках публикации

person Steve Ben-Ari    schedule 29.10.2020

Чтобы не использовать Переопределить настройки звука, объявите переменную MP3 как тип данных Sound.

//# correct... play works as expected
var mysound: Sound = new Click();

//# wrong... play needs override to work 
var mysound: Click = new Click(); 
person VC.One    schedule 29.10.2020
comment
хорошо, но любопытно, что не так с переопределением настроек звука? - person Steve Ben-Ari; 29.10.2020
comment
Ваш звук mysound относится к типу данных Sound, поэтому оставьте его таким, если вы хотите использовать звук без проблем позже (пока вам повезло, что он работает)... Если вы хотите, чтобы mysound имел тип данных Click, тогда вперед и переопределите его Sound, потому что, возможно, у вас есть код или функции в классе Click, которые вы хотели? Оставьте аудио как new Sound и код как new Class. - person VC.One; 29.10.2020
comment
Я внес изменения var mysound: Sound = new Click();, но это не сработало на моем Android, мне все еще нужно было переопределить настройки звука. - person Steve Ben-Ari; 29.10.2020
comment
Это все чрезвычайно странно, потому что, насколько мне известно, «Переопределить настройки звука» влияет только на то, как звуковые дорожки экспортируются в результирующий SWF. Если он включен, Flash упаковывает все звуки в файлы MP3 заданного качества, независимо от собственных настроек отдельных дорожек. У меня есть только одна дикая идея о причине проблемы: оригинальные звуковые дорожки имеют какой-то странный редкий формат/кодек, который поддерживается Flash Player/PC, но не поддерживается Android. - person Organis; 30.10.2020