ios为了用户隐私安全,禁止自动播放音频文件的解决办法(微信端)

ios为了用户隐私安全,禁止自动播放音频文件

//通过参数给音频设置id和路径
utils = {
    playAudio: function (id, src) {
        var audio = $(‘#‘ + id);
        if (audio.attr(‘src‘) == undefined) {
            audio.attr(‘src‘, src);
        }

        //audio[0].play();
        function audioAutoPlay() {
            audio[0].play();
            document.addEventListener("WeixinJSBridgeReady", function () {
                audio[0].play();
            }, false);
        }
        audioAutoPlay();
    }
}
utils.playAudio(‘music‘,‘mp3/music.mp3‘);
// "野生"方法, 借用原来老的 WeixinJSBridge 未试过
function autoPlayAudio2() {
    window.onload = function() {
// alert(typeof WeixinJSBridge);
        WeixinJSBridge.invoke(‘getNetworkType‘, {}, function(e) {
// 在这里拿到 e.err_msg, 这里面就包含了所有的网络类型
// alert(e.err_msg);
            document.getElementById(‘music‘).play();
        });
    };
}
//通过ajax来播放音频,但没有试过
var processAudio = document.getElementById(‘music‘);
jQuery.ajax({
    url: ‘ajax.js‘,
    async: false,
    success: function() {
        processAudio.play(); // audio will play in iOS before 4.2.1
    }
});
//如果存在就播放音乐
var resultAudio = function(){
    if(document.getElementById("music"))
    {
        document.getElementById("music").play();
    }
};
//通过触摸屏幕来播放音乐
document.getElementById(‘music‘).addEventListener(‘touchstart‘,function(){
    document.getElementById(‘music‘).play();
},false)
//只能写一次,第二次的音乐会无效
function processAudio() {
    wx.config({
        // 配置信息, 即使不正确也能使用 wx.ready
        debug: false,
        appId: ‘‘,
        timestamp: 1,
        nonceStr: ‘‘,
        signature: ‘‘,
        jsApiList: []
    });
    wx.ready(function() {
        document.getElementById(‘music‘).play();
    });
}
processAudio();
<audio src="audio/bg5.mp3" loop id="music"></audio>
//通过监听“DOMContentLoaded”事件来触发音乐 WeixinJSBridgeReady微信接口
document.addEventListener(‘DOMContentLoaded‘, function () {
    var audio = document.getElementById(‘music‘);
    function audioAutoPlay() {
        audio.play();
        document.addEventListener("WeixinJSBridgeReady", function () {
            audio.play();
        }, false);
    }
    audioAutoPlay();
});
// 音乐播放
function autoPlayMusic() {
// 自动播放音乐效果,解决浏览器或者APP自动播放问题
    function musicInBrowserHandler() {
        musicPlay(true);
        document.body.removeEventListener(‘touchstart‘, musicInBrowserHandler);
    }

    document.body.addEventListener(‘touchstart‘, musicInBrowserHandler);
}
// 自动播放音乐效果,解决微信自动播放问题
function musicInWeixinHandler() {
    musicPlay(true);
    document.addEventListener("WeixinJSBridgeReady", function () {
        musicPlay(true);
    }, false);
    document.removeEventListener(‘DOMContentLoaded‘, musicInWeixinHandler);
}

function musicPlay(isPlay) {
    var media = document.querySelector(‘#bg-music‘);
    if (isPlay && media.paused) {
        media.play();
    }
    if (!isPlay && !media.paused) {
        media.pause();
    }
}
<audio id="Jaudio" class="media-audio" src="http://game.163.com/weixin/gfxm3_gc/images/bg.mp3" preload loop="loop"></audio >
    function audioAutoPlay(id){
        var audio = document.getElementById(id),
            play = function(){
                audio.play();
                document.removeEventListener("touchstart",play, false);
            };
        audio.play();
        document.addEventListener("WeixinJSBridgeReady", function () {//微信
            play();
        }, false);
        document.addEventListener(‘YixinJSBridgeReady‘, function() {//易信
            play();
        }, false);
        document.addEventListener("touchstart",play, false);
    }
audioAutoPlay(‘Jaudio‘);
时间: 2024-10-11 22:01:08

ios为了用户隐私安全,禁止自动播放音频文件的解决办法(微信端)的相关文章

IE浏览器不能自动显示PDF文件的解决办法

今天更新了Adobe的PDF Reader,更新后发现在网页上无法预览PDF文件了,点击PDF的连接,浏览器就会提示下载或者打开,感觉很不爽,经过一番百度,找到了解决办法,在这里分享一下. 打开IE浏览器,在标题栏上面单击右键: 勾选Menu Bar,然后就会看到菜单栏显示出来了,点击Tool > Manage Add-nos,如图: 打开如下界面,点击下拉框,选中All add-ons 然后会显示所有的内容: 如图,选中PDF Reader,点击Disable按钮,按钮会变为Enable,然后

ios微信上无法自动播放音频的情况

今天做个html5需要自动播放音频,发现在ios下autoplay="autoplay"是失效的 就想着强制用js强制播放 document.getElementById('music').play(); 发现并没有用 加上这段代码后才有作用 document.getElementById('music').play(); document.addEventListener("WeixinJSBridgeReady", function () {//监听微信准备就绪

微信自动播放音频的解决方案

微信自动播放音频的解决方案,亲测有效: wx.ready(function () {    wx.getNetworkType({        success: function (res) {            document.getElementById('ring').play()        }    })})

ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件

原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class="MapClient.PicMusic" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx

Unity 播放音频文件

Unity 播放音频文件参考代码: 1 public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = false, float fPerTime = 1f) 2 { 3 if (!strSoundName.Equals("")) 4 { 5 //设置背景音乐 6 AudioClip clip = Resources.Load<AudioClip>(strSoundName); 7

ios如何获取在 NsData 中下载的音频文件?

ios如何获取在 NsData 中下载的音频文件? 标签: ios  Objective-C 发布时间: 2014/12/12 7:48:06 在我的项目我有 Url 的音频......看看我的代码... ViewController.h #import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController : UIViewController<AVAudioPlayer

Android 使用系统的Activity播放音频文件 intent

Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(new File("/sdcard/record.wav")), "audio"); startActivity(intent); 这里可以播放wav.amr.MP3等

关于IOS由于Dropbox被封,https请求不好用的解决办法

最近研究IOS的In-House安装方法,好不容易申请下来了企业级证书,也使用了Dropbox的网盘来支持苹果的In-House安装方法,也给客户展示了,下载的地址也给客户了.没过几天,坑爹的天朝把Dropbox给封了,部署上去的下载地址全不好用了,刚刚客户给我打电话问这件事咋办,搜索了国内所有主流的网盘我也没找到既可以有直链地址的网盘又支持https的,就在灰心之际,我想起了开源中国,记得在做开源项目时,开源中国是https请求,并且可以在网页中展示出全部代码.所我马上在开源中国申请了一个账号

iOS开发 - &quot;Cast from pointer to smaller type &#39;int&#39; loses information” 解决办法

今天要写一个联系人搜索算法. 百度了下, 在code4App中找到相关代码. 但是自己跑了下, 发现报错. 错误内容如下: "Cast from pointer to smaller type 'int' loses information"  从错误内容我们也能看出, 错误出在'int'这里了. 而那份代码也比较早的, 在Xcode5.1之后, 要用uintptr_t来替代int. 把错误语句处的int全换成uintptr_t即可. iOS开发 - "Cast from p