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. Linux测试UDP端口(nc)

    # nc -vuz serveripaddress 123 Connection to serveripaddress 123 port [udp/ntp] succeeded! 结果证明UDP 12 ...

  2. Learning PHP Design Patterns

    Learning PHP Design Patterns CHAPTER 1 Algorithms handle speed of operations, and design patterns ha ...

  3. The Log: What every software engineer should know about real-time data's unifying abstraction

    http://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-abo ...

  4. IO 之 File 类

    位于 java.io 包 用来将文件或者文件夹封装成对象 方便对文件和文件夹的属性信息进行操作 File 对象可以作为参数传递给流的构造函数 构造函数 // 可以将一个已存在的, 或者不存在的文件或者 ...

  5. excel数据生成sql insert语句

    excel表格中有A.B.C三列数据,希望导入到数据库users表中,对应的字段分别是name,sex,age . 在你的excel表格中增加一列,利用excel的公式自动生成sql语句,方法如下: ...

  6. 关于 tf.nn.softmax_cross_entropy_with_logits 及 tf.clip_by_value

    In order to train our model, we need to define what it means for the model to be good. Well, actuall ...

  7. TCP三次“握手”与4次“挥手”

    OSI(Open System Interconnection,开放系统互联)七层网络模型成为开放式系统互联参考模型,是一个把网络通信在逻辑上的定义,也可以理解成为定义了通用的网络通信规范.而我们的数 ...

  8. <context:annotation-config/> 的理解

    转载:http://www.cnblogs.com/iuranus/archive/2012/07/19/2599084.html 当我们需要使用BeanPostProcessor时,直接在Sprin ...

  9. Hive2.2.1概述(待重写)

    概述 hive 是一个包裹着 hdfs 的壳子,hive 通过 hql,将 sql 翻译成 MR ,进行数据查询. Hive是⼀个构建在Hadoop之上的数据仓库 hive的数据存在hdfs上,元信息 ...

  10. poj3125

    /*水题,模拟排队*/#include<stdio.h>#include<string.h>#include<algorithm>using namespace s ...