我有一个servlet,它使用BufferedOutputStream加载音频文件,如下所示:
BufferedInputStream in= new BufferedInputStream( new FileInputStream( file), DEFAULT_BUFFER_SIZE );
BufferedOutputStream out= new BufferedOutputStream( response.getOutputStream(), DEFAULT_BUFFER_SIZE );
byte[] buffer= new byte[DEFAULT_BUFFER_SIZE];
int size;
while ( ( size= in.read( buffer) ) > 0 ) {
out.write( buffer, 0, size);
}
此文件用于音频html5标记(如果浏览器不支持,则使用swf播放器)。 它适用于某些浏览器(在Windows上:IE6-10,Firefox,Chrome,Safari。在智能手机上:Chrome,Firefox(测试版),默认的Android浏览器)。 但在2个浏览器(iPad / iPhone上的Safari和HTC浏览器)中,我有一个例外。当我通过我的servlet加载文件时,~15 seconde之后,我收到一个例外:
org.apache.catalina.connector.ClientAbortException: java.io.IOException: APR error: -730053
在safari上,我只能读取一次文件,然后我必须重新加载音频html5标签。在HTC浏览器上,我无法随时阅读。
很多。