Articles of inputstream

如何使用videoView和inputStream播放video

似乎videoView只支持几种播放video的方法,但它们都不支持最通用的播放forms,这很奇怪(因为我认为所有其他方法都使用它)。 我的问题:如何设置videoView来播放inputStream(任何types的inputStream,甚至是我自己定制的一个)? 是否有可能没有实际将数据复制到文件然后播放或有某种技巧来“管道”数据通过? 我认为音频缺少同样的东西,但我不确定。

如何在处理动作发送意图的应用程序中获取通过EXTRA_STREAM接收的数据大小?

当另一个应用程序将文件发送到我的应用程序时,我通过intent.getExtras().get(EXTRA_STREAM)属性获得一个Uri。 然后我可以使用输入流获取文件的字节: new BufferedInputStream(activity.getContentResolver().openInputStream(uri)); 一切都好,到目前为止工作。 现在我想向我的用户展示一些进展,但是我不确定如何在不事先读取流的情况下获得文件的总字节数(这会破坏进度条的整个目的) )… 我试过ParcelFileDescriptor fileDesc = activity.getContentResolver().openFileDescriptor(uri, “r”); 但这只适用于file://…types的uris。 例如,如果我从Skydrive收到一个文件,我会得到一个content://.. Uri,如: content://com.microsoft.skydrive.content.external/external_property/10C32CC94ECB90C4!155/Sunset.480p.mp4 在这样的Uri上,我(不出所料)得到了“FileNotFoundException:Not a whole file”exception。 任何确定的火灾方式来获得我将获得的数据流的总大小?

意外的状态行:URL openStream()方法的ICY 200 OK?

根据kitakt 4.4的变化,播放shoutcast流有一些问题(那些返回“ICY”而不是“HTTP / 1.x”响应)。 因此,kitkat的解决方案是在我们打开流之前在JVM中重新注册“icy”协议前缀: try { java.net.URL.setURLStreamHandlerFactory( new java.net.URLStreamHandlerFactory(){ public java.net.URLStreamHandler createURLStreamHandler( String protocol ) { Log.d( LOG, “Asking for stream handler for protocol: ‘” + protocol + “‘” ); if (“icy”.equals( protocol )) return new com.spoledge.aacdecoder.IcyURLStreamHandler(); return null; } }); } catch (Throwable t) { Log.w( LOG, “Cannot set the ICY URLStreamHandler – […]

将文件复制到assets文件夹

搜索1小时后,我找不到解决问题的方法。 我想将文件从sdcard移动到assets文件夹,并覆盖assets文件夹中的现有文件(两个文件都是sqlite数据库,同名,数据略有不同) ??

Android应用程序以安全的方式从服务器检索数据

显然我不是android或java专家。 我想在Android应用程序中执行的操作是从服务器加载数据。 我已经开始工作这部分并且附带了源代码。 但我想以一种安全的方式做到这一点。 作为第一步,而不是http://thisismyurl.com/a.php?action=get我想用这样的用户名/密码来做: http://username:password@thisismyurl.com/a.php?action=get我该怎么办? 我应该只将用户名和密码部分添加到url吗? 让我说我已经完成了这将不会有任何用处,因为有人可以打开apk并反编译源代码并获取url和用户名/密码。 那么有一种真正安全的方法吗? 我希望我能在这里得到理解。 String url = “http://thisismyurl.com/a.php?action=get”; String result = Web.executeWeb(url); public class Web { public static String executeWeb(final String url) { final StringBuilder sb = new StringBuilder(); Thread thread = new Thread(new Runnable() { public void run() { try { InputStream is = (InputStream) new URL(url).getContent(); BufferedReader […]

我如何在Volley Library中获得Inpustream作为响应

我在应用程序中使用Volley库。 在onresponse listener中我需要InputStream作为响应 我怎么得到它?

从InputStream读取时发生IOException

我在从Android平台上的InputStream读取时遇到了一个奇怪的问题。 我不确定这是Android特定的问题,还是我一般做错的事情。 唯一针对Android的是这个电话: InputStream is = getResources().openRawResource(R.raw.myfile); 这将从Android资产返回文件的InputStream 。 无论如何,这是我遇到问题的地方: bytes[] buffer = new bytes[2]; is.read(buffer); 当read()执行时抛出IOException 。 奇怪的是,如果我执行两个连续的单字节读取(或任意数量的单字节读取),则没有exception。 例如,这有效: byte buffer; buffer = (byte)buffer.read(); buffer = (byte)buffer.read(); 任何想法为什么两个连续的单字节读取工作,但一次调用同时读取两个引发exception? InputStream看起来很好…… is.available()返回超过一百万字节(应该如此)。 堆栈跟踪在InputStream.read()之前显示这些行: java.io.IOException at android.content.res.AssetManager.readAsset(Native Method) at android.content.res.AssetManager.access$800(AssetManager.java:36) at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:542) 将缓冲区大小更改为单个字节仍会引发错误。 看起来只有在读入字节数组时才会引发exception。 如果我将文件截断为100,000字节(文件最初为:1,917,408字节),它可以正常工作。 超过一定大小的文件是否有问题? 任何帮助表示赞赏! 谢谢!

你如何在MediaPlayer上玩Android InputStream?

所以我的资源文件夹中有一个小的音频文件,我想打开一个InputStream写入缓冲区,然后写入临时文件,然后打开MediaPlayer播放该临时文件。 问题是,当媒体播放器点击mp.Prepare()时,它不播放并且永远不会到达吐司。 有没有人曾经这样做过? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); InputStream str; try { str = this.getAssets().open(“onestop.mid”); Toast.makeText(this, “Successful Input Stream Opened.”, Toast.LENGTH_SHORT).show(); takeInputStream(str); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }//end on create public void takeInputStream(InputStream stream) throws IOException { //fileBeingBuffered = (FileInputStream) stream; //Toast.makeText(this, “sucessful stream conversion.”, Toast.LENGTH_SHORT).show(); […]

如何写一个潜在的巨大InputStream到文件?

我有一个返回字节数组的API调用。 我当前将结果流式传输到字节数组,然后确保校验和匹配,然后将ByteArrayOutputStream写入File。 代码是这样的,它运行得很好。 String path = “file.txt”; ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int len = 0; while ((len = inputStream.read(buffer)) != -1) { byteBuffer.write(buffer, 0, len); } FileOutputStream stream = new FileOutputStream(path); stream.write(byteBuffer.toByteArray()); 我担心输入流的结果可能大于android中的堆大小,如果整个字节数组在内存中,我可能会得到OutOfMemoryexception。 将inputStream写入文件块的最优雅方法是什么,这样字节数组永远不会大于堆大小?

Android openRawResource()不适用于drawable

我正在尝试通过这样做来创建输入流 InputStream is = (InputStream) getResources().openRawResource(R.drawable.image1); 但是我遇到了关于我的可绘制文件(R.drawable.image1)的错误“原始types的预期资源”。 image1是一个png,位于我的res / drawable文件夹中。 有任何想法吗???