h5 audio播放音频文件

注:下面html中样式及不相关的内容去掉了

第一个例子

播放没有防盗链的外网音频文件是可以的

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>音乐</title>
<script src="Js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="Js/util.js" type="text/javascript"></script>
<link href="file/audio/css/public.css" rel="stylesheet" type="text/css">
<!--禁止屏幕缩放-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.2,user-scalable=no"/>
</head>
<body>
<div class="text_h2" style="margin-top: 10px; padding-left: 14px; padding-right: 14px;">
<span id="Title" style="letter-spacing: 2px; line-height: 25px; font-weight: 600;">标题<br></span>
</div>
<div class="text_h2" style="padding-left: 5px; padding-right: 5px;">
<div style="margin-top: 5px;"><img id="LogoUrl" src="">
</div>
</div>
<div style="background-color: #e2e2e2; margin-left: 15px; margin-right: 15px; border-radius: 2px;">
<div id="AudioTitle" style="font-weight: 600; text-align: center; padding-top: 12px;">标题</div>
<div style="text-align: center;" id="divAudio">
<audio id="SimpleMusicPlayer" controls="controls" style="background-color: #e2e2e2; width: 98%; margin-top: 12px; margin-bottom: 5px;">
</audio>
</div>
</div>
<div class="bottom_text" id="Contents" style="padding-left: 12px; padding-right: 12px; letter-spacing: 2px; line-height: 28px; font-weight: 600; margin-top: 10px; margin-bottom: 15px;">
内容区
</div> <script type="text/javascript"> $(document).ready(function() {
GetData();
}); function GetData() {
var id = getQueryString("id") || 0; if (id == 0) {
return;
}
var audio = document.getElementById("SimpleMusicPlayer"); var data = {};
data.method = "Get";
data.id = id;
ajaxProcess("/h5/audio.aspx?", data, function callSuccess(oRet) {
var result = oRet[0];
if (result != null) {
document.title = "我的音乐-" + result.Title;
$("#Title").html(result.Title + "<br>");
$("#AudioTitle").html(result.AudioTitle);
$("#Contents").html(result.Contents); if (result.AudioUrls) {
audio.src = result.AudioUrls; //设置audio src的值
} else { audio.src = "http://www.xxx.com/default.mp3";
} audio.autobuffer = true;
audio.load();
audio.preload = "auto";
}
}, function callError(e) {
alert(e);
});
}
</script>
</body>
</html>

第二个例子

如果音频地址是别人网站的,且有防盗链,用例子一的方法则播放不了,用fiddler查看音频文件访问返回的是status 399,如果直接在浏览器打开这个地址则是可以播放的,初步怀疑是加了防盗链设置,解决如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>音乐</title> <script src="Js/jquery-1.11.0.min.js" type="text/javascript"></script>
<script src="Js/util.js" type="text/javascript"></script>
<link href="file/audio/css/public.css" rel="stylesheet" type="text/css">
<!--禁止屏幕缩放-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.2,user-scalable=no"/>
</head>
<body>
<div class="text_h2" style="margin-top: 10px; padding-left: 14px; padding-right: 14px;">
<span id="Title" style="letter-spacing: 2px; line-height: 25px; font-weight: 600;">标题<br></span>
</div>
<div class="text_h2" style="padding-left: 5px; padding-right: 5px;">
<div style="margin-top: 5px;"><img id="LogoUrl" src="">
</div>
</div>
<div style="background-color: #e2e2e2; margin-left: 15px; margin-right: 15px; border-radius: 2px;">
<div id="AudioTitle" style="font-weight: 600; text-align: center; padding-top: 12px;">标题</div>
<div style="text-align: center; background-color: #e2e2e2; width: 95%; margin-top: 12px; margin-bottom: 5px; height:50px;" id="divAudio">
<iframe id="audioPage" scrolling="no" frameborder="0" style="width:98%;height:45px; text-align: center;"> </iframe>
</div>
</div>
<!--<script type="text/javascript" src="file/audio/js/audio.js"></script>-->
<div class="bottom_text" id="Contents" style="padding-left: 12px; padding-right: 12px; letter-spacing: 2px; line-height: 28px; font-weight: 600; margin-top: 10px; margin-bottom: 15px;">
内容区
</div> <script type="text/javascript"> $(document).ready(function() {
GetData();
}); function GetData() {
var id = getQueryString("id") || 0;
if (id == 0) {
return;
} var data = {};
data.method = "Get";
data.id = id;
ajaxProcess("/h5/audio.aspx?", data, function callSuccess(oRet) { var result = oRet[0];
if (result != null) {
document.title = "我的音乐-" + result.Title;
$("#Title").html(result.Title + "<br>");
$("#AudioTitle").html(result.AudioTitle);
$("#Contents").html(result.Contents); var soundSrc = "http://www.xxx.com/default.mp3";
if (result.AudioUrls) {
soundSrc = result.AudioUrls;
} var strSrc = "javascript:\"<!doctype html><html><head></head><body style='width:100%;height:45px; text-align: center;'><div><audio id='simplemusicplayer2' src='" + soundSrc + "' controls='controls' preload='metadata' autoplay style='width:95%;'></audio></div></body></html>\"";
$("#audioPage").attr("src", strSrc); //iframe的src设置的是这个page的html页面内容,这样就去掉了iframe页面内audio 元素src的来源 reffer
}
}, function callError(e) {
alert(e);
});
}
</script>
</body>
</html>

关键之处是让访问音频地址的时候reffer没有,其它的办法也可以,这里只是其中一种方法

h5 audio播放音频文件的更多相关文章

  1. jquery自动播放音频文件

    使用jquery自动播放音频文件 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  2. 关于Window Server2008 服务器上无法播放音频文件的解决方案

    在偌大的百度当中查找我所需要的资源信息,但网络上所描述的都不能解决,发生此类问题的人很多,但是都没有得到准确的解决方法!经个人各方面的尝试,其实非常简单的解决了无法播放音频文件的问题,如果各位今后也遇 ...

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

    原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...

  4. .NET winform播放音频文件

    前提:最近要求做一个在winform端做一个音频文件播放的功能,至此,总结最近搜寻的相关资料. 一.微软提供了三种方式来播放音频文件 1.通过System.Media.SoundPlayer来播放 2 ...

  5. C#调用mciSendString播放音频文件

    mciSendString函数是一个WinAPI,主要用来向MCI(Media Control Interface)设备发送字符串命令. 一.函数的声明如下: private static exter ...

  6. Unity 播放音频文件

    Unity 播放音频文件参考代码: public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = fal ...

  7. Qt 播放音频文件

    Qt播放音频文件的方法有好多中,简单介绍几种 不过一下几种方式都需要在Qt工程文件中添加 QT       += multimedia 第一 QMediaPlayer类 可以播放MP3文件,同时使用也 ...

  8. 使用audio标签播放音频文件

    HTML5定义了一个新的元素用来指定标准的方式来插入音频文件到web页面中:<audio>标签.使用audio标签可以控制音频的播放与停止,循环播放与播放次数设置,以及播放位置等等. 例如 ...

  9. IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE

    本文转载至 http://blog.csdn.net/u014011807/article/details/40187737 在本卷你可以学到什么? 采用四种方法设计应用于各种场合的音频播放器: 基于 ...

随机推荐

  1. 一篇搞定vue请求和跨域

    vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 axios是一个基本Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对v ...

  2. Spring 框架整合Struts2 框架和 Hibernate 框架

    1. Spring 框架整合 Struts2 框架 // [第一种整合方式(不推荐)](http://www.cnblogs.com/linkworld/p/7718274.html) // 从 Se ...

  3. Python模块学习之bs4

    1.安装bs4 我用的ubuntu14.4,直接用apt-get命令就行 sudo apt-get install Python-bs4 2.安装解析器 Beautiful Soup支持Python标 ...

  4. Python__return

    return的注意点: return返回的值, 没有任何类型限制 return是函数结束的标志,函数内可以写多个return,但执行一次,函数就立刻结束,并把return后的值作为本次调用的返回值.

  5. SVG Use(转)

    转自:http://www.zhangxinxu.com/wordpress/2014/07/introduce-svg-sprite-technology/ 未来必热:SVG Sprite技术介绍 ...

  6. dplyr快速入门

    RStudio Blog 介绍dplyr 包已发布 (Introducing dplyr), 此包将原本 plyr 包中的 ddply() 等函数进一步分离强化, 专注接受dataframe对象, 大 ...

  7. ansible安装及使用

    一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...

  8. Memcached基础介绍

    1.memcached是什么,有什么作用? )memcached是一个开源的.高性能的内存的缓存软件,从名称上看mem就是内存的意思,而cache就是缓存的意思. )memcached通过在事先规划好 ...

  9. python网络编程——网络IO模型

    1 网络IO模型介绍 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:    (1)同步阻塞IO(Blocking IO):即传统的IO模型.    (2)同步非阻塞IO(Non-bl ...

  10. java @Retention元注解

    @Retention元注解 有三种取值:RetentionPolicy.SOURCE.RetentionPolicy.CLASS.RetentionPolicy.RUNTIME分别对应:Java源文件 ...