我 aws-android-sdk-1.4.3/samples/S3_SimpleDB_SNS_SQS_Demo
用来预览存储在 Amazon (Amazon Simple Storage Service) 上的文件。查看代码,我看到他们使用它来访问文件:
com.amazonaws.demo.s3.S3.getDataForObject (line 130)
public static String getDataForObject( String bucketName, String objectName ) {
return read( getInstance().getObject( bucketName, objectName ).getObjectContent() );
}
protected static String read( InputStream stream ) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream( 8196 );
byte[] buffer = new byte[1024];
int length = 0;
while ( ( length = stream.read( buffer ) ) > 0 ) {
baos.write( buffer, 0, length );
}
return baos.toString();
}
catch ( Exception exception ) {
return exception.getMessage();
}
}
}
好吧,我已经修改了这个方法以返回ByteArrayOutputStream
,然后我很容易将它转换为String
or Bitmap
(应用ByteArrayOutputStream.toByteArray()
然后使用
BitmapFactory.decodeByteArray(byte[] data, int offset, int length, Options opts)
)。
因此,它适用于文本文件和图片。我的问题是当我尝试访问视频时。所以,我的问题是:
1.使用上面提供的方法,我怎样才能从ByteArrayOutputStream
( ByteArrayOutputStream.toString()
) 中获取视频并以aVideoView
或 usingMediaPlayer
或a 方式播放...?
2. 有人知道亚马逊上存储的预览视频问题的其他解决方案吗?(我听说他们sdk
使用IOS
URL 来访问文件......)
PS:提供文件 URL 并在浏览器中打开它是没有意义的,因为这个 URL 会在一段时间后过期。