在Android和iOS上自动播放背景HTML5声音/视频

时间:2017-06-01 10:26:10

标签: javascript android ios html5 audio

我深入了解StackOwerflow,但没有得到任何帖子的正确答案。

首先是我的代码:

(function(a,n){
        window.onload = function() {
            var b = document.body,
                userAgent = navigator.userAgent || navigator.vendor || window.opera,
                playSound = function(file) {
                    var mediaAudio = new Audio(file);
                    mediaAudio.play();
                };
            if(b.id == 'fail' || b.id == 'success')
            {
                if ((/android/gi.test(userAgent) && !window.MSStream))
                {
                    var vm = document.createElement("video"), type;
                    vm.autoPlay = false;
                    vm.controls = true;
                    vm.preload = 'auto';
                    vm.loop = false;
                    vm.muted = true;
                    vm.style.position = 'absolute';
                    vm.style.top = '-9999%';
                    vm.style.left = '-9999%';
                    vm.style.zIndex = '-1';
                    vm.id = 'video';

                    if(b.id == 'fail')
                        type = a;
                    else
                        type = n;

                    for(key in type)
                    {
                        if(/video/gi.test(key) && vm.canPlayType(key) == 'probably') {
                            vm.type = key;
                            vm.src = type[key];
                            b.appendChild(vm);
                            setTimeout(function(){
                                vm.muted = false;
                                vm.play();
                            },100);
                            return;
                        }
                    }
                }
                else
                {
                    var au = new Audio(),type;
                    if(b.id == 'fail')
                        type = a;
                    else
                        type = n;
                    for(key in type)
                    {
                        if(/audio/gi.test(key) && au.canPlayType(key) == "probably") {
                            playSound(type[key]);
                            return;
                        }
                    }
                }
            }
        }
    }({
        'audio/mpeg':'./sfx/not_ok.mp3',
        'audio/wav':'./sfx/not_ok.wav',
        'audio/ogg':'./sfx/not_ok.ogg',
        'video/mp4; codecs=avc1.42E01E,mp4a.40.2':'./sfx/not_ok.mp4',
    },
    {
        'audio/mpeg':'./sfx/ok.mp3',
        'audio/wav':'./sfx/ok.wav',
        'audio/ogg':'./sfx/ok.ogg',
        'video/mp4; codecs=avc1.42E01E,mp4a.40.2':'./sfx/ok.mp4',
    }));

我试图在一个特殊页面上的所有设备上播放背景声音。该页面播放failsuccess

一切都适用于桌面浏览器,但当我尝试在移动设备上播放时,我得不到结果。在上面的代码中,我添加了一个hack,我在android平台上生成隐藏的视频并尝试自动播放但没有成功。

有没有办法可以自动触发视频或音频播放?

有没有办法模拟身体上的某些点击事件,以便在点击事件或其他解决方案上自动播放声音?

谢谢!

0 个答案:

没有答案