无法在Android上播放音频 - Sencha Touch SDK工具2.0.0

时间:2012-12-25 13:46:06

标签: android html5 sencha-touch sencha-touch-2 html5-audio

我听说Android设备不会播放html5中的某些音频文件(例如它们支持mp3,但不播放使用一些标准软件创建的文件:the link)。

我尝试了不同的变体,但没有人为我工作。

E.g。来自here的标准示例:

Ext.create('Ext.Container', {
    fullscreen: true,
    layout: {
        type: 'vbox',
        pack: 'center'
    },
    items: [
        {
            xtype : 'toolbar',
            docked: 'top',
            title : 'Ext.Audio'
        },
        {
            xtype: 'toolbar',
            docked: 'bottom',
            defaults: {
                xtype: 'button',
                handler: function() {
                    var container = this.getParent().getParent(),
                        // use ComponentQuery to get the audio component (using its xtype)
                        audio = container.down('audio');

                    audio.toggle();
                    this.setText(audio.isPlaying() ? 'Pause' : 'Play');
                }
            },
            items: [
                { text: 'Play', flex: 1 }
            ]
        },
        {
            html: 'Hidden audio!',
            styleHtmlContent: true
        },
        {
            xtype : 'audio',
            hidden: true,
            url   : 'touch/examples/audio/crash.mp3'
        }
    ]
});

html中的音频:

<audio controls>
  <source src="resources/sound/1.mp3" type="audio/mpeg">
Can't play sound on your device.
</audio>

当我在Chrome浏览器的帮助下调试我的应用程序时,我听到了声音,但我没有在真实设备上听到它(Android 2.3.5)。

在html变体的情况下,我看到一个滑块抽搐并立即停留在进度条的末尾。如果是“播放”按钮,除了缺失的声音外,一切正常(图形,播放/暂停)。

我没有为声音找到任何特殊的Android权限选项,因此,我认为权限不是原因。

问题。我错了,是否可以播放任何mp3音频?什么是最简单的解决方法?

1 个答案:

答案 0 :(得分:3)

Sencha Touch Audio仅适用于Android / Chrome浏览器,而不适用于设备。一种解决方案是使用Phonegap打包您的应用,并使用Media对象获取音频。很多麻烦,但大部分都有效。