我不顾一切地试图找到一个必须在iOS-Safari(例如iPad,iPad2和iPhone 4)上运行的Web应用程序的解决方案:
这是我前段时间写的一个网络应用程序,它允许用户搜索和收听短音乐样本(MP3,全部从~100 kB到~1.5 MB).音频播放器是基于Flash的,因此它目前无法在iOS设备上运行,我将不得不在HTML 5或"直接"QuickTime对象中实现替代方案.
我的HTML 5和QuickTime替代iOS设备到目前为止工作正常,但有一个主要问题我无法找到解决方案:
与Flash不同,我的iPad 2上的大多数支持HTML 5的浏览器在加载和播放后都不会将audioiofiles存储在browsercache中 - 无论是HTML 5音频标签还是QuickTime-Object.每次我从服务器加载一个音频文件进行播放时(使用JavaScript命令,所以不用更改或重新加载整个页面),它会再次完全下载.
如果用户收听样本A然后收听样本B,Safari忘记播放样本A并再次下载整个MP3,如果我想再次收听它.在具有可能窄带宽的移动设备上,这种行为是不可能的.
有没有办法在Safari的缓存中存储由HTML 5或QuickTime打开的下载的音频文件,因此它记得已经下载了它们 - 就像它缓存了常见的"网络文件",如HTML,CSS或JPEG图像,或者像Flash一样将这些对象存储在它的本地缓存?
我的第一次尝试是尝试将应用程序缓存与清单文件一起使用 - 虽然这不是我的应用程序的预期目的...我没有一个我希望缓存或"可离线使用"的静态文件集 - 我只想缓存用户已播放的MP3.
应该可以使用"动态清单":一个由Apache PHP模块解析并列出迄今为止从PHP会话中播放的文件 - 如下所示:
session_start();
header("Content-Type: text/cache-manifest, charset=UTF-8");
echo "CACHE MANIFEST\n";
foreach($_SESSION['playedSongs'] as $song)
{
echo $song."\n";
}
Run Code Online (Sandbox Code Playgroud)
因此,无论何时加载/播放歌曲,我都可以使用AJAX访问PHP会话,插入播放文件的文件名并通过调用window.applicationCache.update()或.swapCache()手动更新清单.
这有两个问题:
首先:它不起作用.我甚至没有尝试使用动态清单:
<!DOCTYPE html>
<html manifest="cache.manifest">
<head>
<title>Test</title>
<script type="text/javascript">
function playStuff(id)
{
if(id == 1)
{
window.document.getElementById("audio").innerHTML = '<audio controls preload="automatic" autobuffer><source src="song01.mp3" type="audio/mp3" /></audio>';
}
else if(id == 2)
{
window.document.getElementById("audio").innerHTML = '<audio controls preload="automatic" …Run Code Online (Sandbox Code Playgroud) 我似乎无法让iPhone或iPad上的Safari离线缓存视频.当我离线时,其他所有内容都会被缓存.视频文件显然在清单中,但我只是得到了破碎的箭头.在Safari桌面上正常工作.有线索吗?我已经尝试了对象嵌入和视频标签.
我们希望制作一个基于音频的网络应用程序,它将包含许多声音片段.我们希望缓存这些文件,以便性能良好并且不依赖于网络速度.HTML5可以将音频缓存为离线模式吗?
我构建了一个离线Web应用程序(www.chirp.com),在桌面上添加书签时会自动缓存.在飞行模式下对iPhone4进行测试表明该程序在没有网络连接的情况下运行(当然除了谷歌地图访问).但mp3声音文件无法在此模式下播放.在离线模式下运行时音频标签是否有问题?声音文件包含在清单文件中,因此它们应与其他文件一起缓存.例如,仍然显示图像文件.
如果我使用PhoneGap从这个webapp创建一个iPhone应用程序怎么样?声音文件是否会包含在生成的二进制加载中?换句话说,每次运行应用程序并请求声音时,是否会暂停在线下载小型mp3文件的时间延迟?
我搜索并发现html5不支持直接存储音频.我将音频转换为base64字符串,然后我将存储在本地存储中.
我正在用jplayer开发一个html5音频播放器应用程序.我在服务器中有音频,我需要将它们存储在本地存储中,所以我需要用javascript下载音频文件.有没有办法用javascript下载音频文件?任何帮助将是欣赏.
audio ×3
html5 ×3
iphone ×3
caching ×2
html5-audio ×1
html5-video ×1
ios ×1
javascript ×1
jplayer ×1
safari ×1