我正在使用Web Audio API在iPhone游戏上获得声音。问题是这个程序完全是客户端。我想将我的mp3存储在本地文件夹中(而不是用户输入驱动),所以我不能使用XMLHttpRequest来读取数据。我正在研究使用FileSystem,但Safari不支持它。

有什么办法吗?

编辑:感谢以下回复。不幸的是,Audio API对于游戏来说是非常慢的。我有这个工作,延迟只会使用户体验不可接受。为了澄清,我需要的是如此 –

var request = new XMLHttpRequest();
request.open('GET','file:///./../sounds/beep-1.mp3',true);
request.responseType = 'arraybuffer';
request.onload = function() {
    context.decodeAudioData(request.response,function(buffer) {
    dogBarkingBuffer = buffer;
},onError);
}
request.send();

但这给我的错误 –

XMLHttpRequest无法加载文件:///sounds/beep-1.mp3。只有HTTP支持交叉原始请求。
未捕获错误:NETWORK_ERR:XMLHttpRequest异常101

通过阅读本地文件了解安全风险,但是在您自己的域内肯定可以吗?

解决方法

我有同样的问题。我发现这个非常简单的解决方案。

JS:

audio_file.onchange = function(){
    var files = this.files;
    var file = URL.createObjectURL(files[0]); 
            audio_player.src = file; 
    audio_player.play();
};

HTML:

<input id="audio_file" type="file" accept="audio/*" />
<audio id="audio_player" />

你可以在这里测试:
http://jsfiddle.net/Tv8Cm/

html5 – 在Javascript中使用Web Audio API的本地文件的更多相关文章

  1. 如何查看浏览器对html5的支持情况

    这篇文章主要介绍了如何查看浏览器对html5的支持情况,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. swift – 有没有办法结合开关和包含?

    假设我有三个包含扩展的集合:和一个简单的枚举:现在我想要做的是实现一个函数,该函数根据传递给它的字符串返回FileType选项,哪个集合包含它:它应该按预期工作,但我想知道是否有一种方法将if语句转换为一个switch语句,尤其是在使用枚举时,switch语句是更好的选择避免错误.如果使用switch语句无法实现,我也会感谢任何优雅的替代方案.我认为你的整个问题是你试图为每种类型维护3个独立集合,而不是直接将它们连接到给定的文件类型:

  3. 在Android浏览器中使用HTML5播放音频

    我想在Android浏览器中播放音频,使用html5标签.它在iPhone浏览器中运行良好,但在Android中不行.我正在使用Android虚拟设备4.0.3.有谁知道为什么?

  4. Android模拟器声音 – ubuntu

    使用Ubuntu10.0464位进行Android开发,一切顺利,除了声音.我使用-audio选项和-audio-out使用alsa作为后端参数,但没有运气.任何的想法?注意命令行“-no-audio”选项的替代方法是调整AVD管理器中的Android虚拟设备,并在“硬件”下添加“音频播放支持:否”和“音频录制支持:否”.通过这些更改,我可以从Eclipse启动模拟器并在其中运行我的应用程序.

  5. android – 三星设备上的AcousticEchoCanceler无法正常工作

    解决方法试试这些:

  6. 给定Android音乐播放列表名称,如何找到播放列表中的歌曲?

    可以通过MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI上的查询找到播放列表名称然后查看MediaStore.Audio.PlaylistsColumns.NAME列.还有一个数据列,MediaStore.Audio.PlaylistsColumns._DATA,但它返回null.歌曲列表(MediaStore.Audio.Media.EXTERNAL

  7. android – 我想阻止我的音乐播放器应用程序每次应用程序启动时扫描目录中的音频文件.我怎样才能做到这一点?

    我想阻止我的音乐播放器应用程序在每次应用程序启动时扫描目录中的音频文件.我怎样才能做到这一点?我一直在使用以下代码来扫描音频文件.我希望应用程序只在有新文件时进行扫描.因为如果我每次都扫描整张SD卡,那么启动应用程序需要花费太多时间.请帮帮我解决方法无需将所有歌曲保留在本地应用列表中.要显示mp3list,您可以使用带限制的内容提供者光标列表适配器查询(逐页滚动查询)要直接搜索使用contentp

  8. android – 如何通过MediaRecorder.start()来静音“嘟嘟”?

    解决方法虽然我来不及回答它.它仍然可以帮助所有人都在谷歌搜索同样的问题.在开始媒体记录器之前添加以下两行代码..它会静音手机声音..启动录音机后等待一到两秒钟并取消静音,你可以使用以下可运行的…

  9. android – 如何使用MediaStore.Audio.Albums.ALBUM_ART显示专辑封面?

    我正在尝试构建一个MP3播放器,我希望ImageView能够显示各个歌曲的专辑封面.我尝试了以下,但它不起作用.当我尝试播放歌曲时,我得到的只是ImageView中的空白屏幕.解决方法这是我如何获得一首歌的专辑封面:albumId指的是该歌曲的MediaStore.Audio.Media.ALBUM_ID.如果您正在寻找特定歌曲的专辑封面(而不是专辑列表),据我所知,这是一个两阶段的过程,因为AL

  10. 观察Audio.Media.EXTERNAL_CONTENT_URI的android内容观察器的更改

    大家好,对不起,如果你认为这个问题重复,但是我提出这个问题,因为我没有得到解决方案.其实我正在开发一个Android应用程序,其中我必须检测androidsd卡的音频文件的变化与文件名,文件路径和操作执行.例如,如果我在我的SD卡中添加一个文件,那么我想知道>添加文件的名称>文件的路径>操作–添加以前我已经尝试过文件观察器,但是我必须在每个目录上应用它.所以我搜索了一些其他解决方案,并得到关于Au

随机推荐

  1. 微信小程序canvas实现水平、垂直居中效果

    这篇文章主要介绍了小程序中canvas实现水平、垂直居中效果,本文图文实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 使用HTML5做的导航条详细步骤

    这篇文章主要介绍了用HTML5做的导航条详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. H5最强接口之canvas实现动态图形功能

    这篇文章主要介绍了H5最强接口之canvas实现动态图形功能,需要的朋友可以参考下

  4. Canvas高级路径操作之拖拽对象的实现

    这篇文章主要介绍了Canvas高级路径操作之拖拽对象的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. html5视频自动横过来自适应页面且点击播放功能的实现

    这篇文章主要介绍了h5视频自动横过来自适应页面且点击播放,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. 详解HTML5中的picture元素响应式处理图片

    这篇文章主要介绍了详解HTML5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. canvas像素点操作之视频绿幕抠图

    这篇文章主要介绍了canvas像素点操作之视频绿幕抠图的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. html5利用canvas实现颜色容差抠图功能

    这篇文章主要介绍了html5利用canvas实现颜色容差抠图功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  9. canvas绘制视频封面的方法

    这篇文章主要介绍了canvas绘制视频封面的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. HTML5拖拽功能实现的拼图游戏

    本文通过实例代码给大家介绍了HTML5拖拽功能实现的拼图游戏,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

返回
顶部