h5 audio播放音频文件
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播放音频文件的更多相关文章
- jquery自动播放音频文件
使用jquery自动播放音频文件 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- 关于Window Server2008 服务器上无法播放音频文件的解决方案
在偌大的百度当中查找我所需要的资源信息,但网络上所描述的都不能解决,发生此类问题的人很多,但是都没有得到准确的解决方法!经个人各方面的尝试,其实非常简单的解决了无法播放音频文件的问题,如果各位今后也遇 ...
- ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件
原文:ArcGIS API for Silverlight 当DataGrid选中项时,地图聚焦弹出窗口,并可以播放音频文件 先看效果图,然后上代码: <UserControl x:Class= ...
- .NET winform播放音频文件
前提:最近要求做一个在winform端做一个音频文件播放的功能,至此,总结最近搜寻的相关资料. 一.微软提供了三种方式来播放音频文件 1.通过System.Media.SoundPlayer来播放 2 ...
- C#调用mciSendString播放音频文件
mciSendString函数是一个WinAPI,主要用来向MCI(Media Control Interface)设备发送字符串命令. 一.函数的声明如下: private static exter ...
- Unity 播放音频文件
Unity 播放音频文件参考代码: public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = fal ...
- Qt 播放音频文件
Qt播放音频文件的方法有好多中,简单介绍几种 不过一下几种方式都需要在Qt工程文件中添加 QT += multimedia 第一 QMediaPlayer类 可以播放MP3文件,同时使用也 ...
- 使用audio标签播放音频文件
HTML5定义了一个新的元素用来指定标准的方式来插入音频文件到web页面中:<audio>标签.使用audio标签可以控制音频的播放与停止,循环播放与播放次数设置,以及播放位置等等. 例如 ...
- IOS音频1:之采用四种方式播放音频文件(一)AudioToolbox AVFoundation OpenAL AUDIO QUEUE
本文转载至 http://blog.csdn.net/u014011807/article/details/40187737 在本卷你可以学到什么? 采用四种方法设计应用于各种场合的音频播放器: 基于 ...
随机推荐
- 一篇搞定vue请求和跨域
vue本身不支持发送AJAX请求,需要使用vue-resource.axios等插件实现 axios是一个基本Promise的HTTP请求客户端,用来发送请求,也是vue2.0官方推荐的,同时不再对v ...
- Spring 框架整合Struts2 框架和 Hibernate 框架
1. Spring 框架整合 Struts2 框架 // [第一种整合方式(不推荐)](http://www.cnblogs.com/linkworld/p/7718274.html) // 从 Se ...
- Python模块学习之bs4
1.安装bs4 我用的ubuntu14.4,直接用apt-get命令就行 sudo apt-get install Python-bs4 2.安装解析器 Beautiful Soup支持Python标 ...
- Python__return
return的注意点: return返回的值, 没有任何类型限制 return是函数结束的标志,函数内可以写多个return,但执行一次,函数就立刻结束,并把return后的值作为本次调用的返回值.
- SVG Use(转)
转自:http://www.zhangxinxu.com/wordpress/2014/07/introduce-svg-sprite-technology/ 未来必热:SVG Sprite技术介绍 ...
- dplyr快速入门
RStudio Blog 介绍dplyr 包已发布 (Introducing dplyr), 此包将原本 plyr 包中的 ddply() 等函数进一步分离强化, 专注接受dataframe对象, 大 ...
- ansible安装及使用
一.ansible介绍 1.ansible简介 官方的title是“Ansible is Simple IT Automation”——简单的自动化IT工具. Ansible跟其他IT自动化技术的区别 ...
- Memcached基础介绍
1.memcached是什么,有什么作用? )memcached是一个开源的.高性能的内存的缓存软件,从名称上看mem就是内存的意思,而cache就是缓存的意思. )memcached通过在事先规划好 ...
- python网络编程——网络IO模型
1 网络IO模型介绍 服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种: (1)同步阻塞IO(Blocking IO):即传统的IO模型. (2)同步非阻塞IO(Non-bl ...
- java @Retention元注解
@Retention元注解 有三种取值:RetentionPolicy.SOURCE.RetentionPolicy.CLASS.RetentionPolicy.RUNTIME分别对应:Java源文件 ...