可以减少 Android 上的 SoundManager 2 延迟吗?

Posted

技术标签:

【中文标题】可以减少 Android 上的 SoundManager 2 延迟吗?【英文标题】:Possible to reduce SoundManager 2 lag on Android? 【发布时间】:2014-01-08 17:44:52 【问题描述】:

我已经在我的网页上实现了 SoundManager 2,到目前为止,它在我使用的所有浏览器中都运行得非常好。

当我在桌面上进行测试时,单击 div 和听到播放的声音之间几乎没有延迟。 但是,在 android 上,第一次播放声音时总是会有大约一秒的延迟。之后,几乎没有任何延迟。

是否可以减少或消除 Android 上的首次播放延迟?

这是我正在使用的代码

$(document).ready(function() 

    soundManager.setup(
        url: 'www.mysite.com/swf/',
        preferFlash: false,
        onready: function() 
            soundManager.setup(
                defaultOptions: 
                    autoLoad: true,
                    autoPlay: false
                
            );
            soundManager.createSound(
                id: 'mysound',
                url: 'www.mysite.com/sounds/mysound.mp3',
                volume: 50
            );
        
    );


    $(document).on("click",".wrapper",function(e)
        soundManager.play('mysound');
    


我试过手动加载这样的声音

    var preload = soundManager.createSound(
        id: 'mysound',
        url: 'www.mysite.com/sounds/mysound.mp3',
        volume: 50
    );
    preload.load();

但这没什么区别!

有人在 Android 上运行过这个没有延迟吗?

【问题讨论】:

【参考方案1】:

我认为问题与 android 的政策有关,即只允许声音播放以响应用户输入。

例如:Autoplay audio on mobile safari

这是移动浏览器的限制。

您延迟的原因是您第一次点击时必须加载声音。您的预加载不起作用,因为它不是响应用户输入而运行的,因此被阻止。

一种解决方案是实现一个欢迎屏幕,在点击“输入”按钮时加载声音,如上述链接的顶部评论所述。

如果你只需要它在一个浏览器上工作,你可以导航到

chrome://flags/#disable-gesture-requirement-for-media-playback

在您的安卓手机上并点击启用

【讨论】:

以上是关于可以减少 Android 上的 SoundManager 2 延迟吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android上的后台位置管理

如何在Android系统中使用gzip进行数据传递

Android DataBinding笔记

Android:将外部存储器上的文件夹设为私有或受保护

如何使数字的android edittext类似于DatePickerDialog上的向上/向下按钮?

Chromecast-音量进度条在电视上可见,但在我的 android 移动设备上不可见