Ale*_*dro 6 video android amazon-s3 bytearrayoutputstream amazon-web-services
我 aws-android-sdk-1.4.3/samples/S3_SimpleDB_SNS_SQS_Demo用来预览存储在亚马逊(亚马逊简单存储服务)上的文件.通过代码我看到他们使用它来访问文件:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
}
好吧,我已经修改了这个方法ByteArrayOutputStream而不是然后我很容易将它转换为String或Bitmap(应用ByteArrayOutputStream.toByteArray()然后使用
BitmapFactory.decodeByteArray(byte[] data, int offset, int length, Options opts)).
因此,它适用于文本文件和图片.我的问题是当我尝试访问视频时.所以,我的问题是:
1.使用上面提供的方法,我如何从ByteArrayOutputStream(ByteArrayOutputStream.toString())中获取视频并以VideoView或使用MediaPlayer或方法播放...?
2.有没有人知道亚马逊上存储的预览视频这个问题的其他解决方案?(我听说他们sdk对IOS他们所使用的URL来访问文件...)
PS:提供文件URL并在浏览器中打开它没有意义,因为这个URL在wile之后到期.
首先,我们必须提供我们的桶的名称和aws-android-sdk-1.4.3/samples/S3_SimpleDB_SNS_SQS_Demo我们想要打开的对象(参见complet指南),然后获取我们对象的URL:
AWSCredentials myCredentials = new BasicAWSCredentials("YOUR_AMAZON_ACCESS_KEY_ID", "YOUR_AMAZON_SECRET_KEY_ID");
AmazonS3 s3client = new AmazonS3Client(myCredentials);
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectName);
URL objectURL = s3client.generatePresignedUrl(request);
Run Code Online (Sandbox Code Playgroud)
现在,只需在视频视图中播放视频,提供获得的网址:
getWindow().setFormat(PixelFormat.TRANSLUCENT);
mediaCtrl = new MediaController(this);
mediaCtrl.setMediaPlayer(videoView);
videoView.setMediaController(mediaCtrl);
Uri clip = Uri.parse(objectURL.toString());
videoView.setVideoURI(clip);
videoView.requestFocus();
videoView.start();
Run Code Online (Sandbox Code Playgroud)
我要感谢@CommonsWare
指示我通过REST API(即使我使用的代码来自aws-sdk阅读REST API文档帮助我,并显示其他方式请求亚马逊对象)
指示我使用 generatePresignedUrl()
| 归档时间: |
|
| 查看次数: |
6878 次 |
| 最近记录: |