Articles of 流

Android – 将字节数组写入OutputStreamWriter

我有一个通过Web服务上传照片的应用程序。 过去,我将文件加载到流中,然后转换为Base64。 然后我通过OutputStreamWriter的write()方法发布了结果字符串。 现在,Web服务已经改变,它期望multipart / form-data,它不期望Base64。 所以不知怎的,我需要在没有转换的情况下发布此文件的chararters。 我确定我很接近,但我得到的只是内容长度下溢或溢出。 奇怪的是,在调试器中,我可以看到我的缓冲区长度与我发布的字符串的长度相同。 这是我正在做的事情,希望足够的代码: // conn is my connection OutputStreamWriter dataStream = new OutputStreamWriter(conn.getOutputStream()); // c is my file int bytesRead = 0; long bytesAvailable = c.length(); while (bytesAvailable > 0) { byte[] buffer = new byte[Math.min(12288, (int)bytesAvailable)]; bytesRead = fileInputStream.read(buffer, 0, Math.min(12288, (int)bytesAvailable)); // assign the string if […]

Android上Assets文件夹中的InputStream返回空

我没有任何例外,但是当我跑… InputStream deckFile = context.getAssets().open(“cards.txt”); 然后,deckFile.read()返回-1。 该文件位于正确的文件夹中,并且它不为空。 这应该是世界上最简单的事情…… 编辑:AssetManager确实列出了“cards.txt”,因此不应该是问题所在。

为什么我在Android Studio中收到此错误“原始types的预期资源”?

我试图通过使用按钮设置默认壁纸但由于某种原因,当我在OnCreate方法中设置InputStream时,我得到此错误“raw type of raw”。 我正在引用drawable文件夹并使用drawable文件夹中的icon.png图像。 我正在按照NewBoston系列中的教程进行操作,它似乎适用于Travis,但出于某些原因我的Android在Android Studio中无效。 可能是什么错误? 谢谢 Camera.java: package com.example.user.cameraapplication; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.Switch; import java.io.IOException; import java.io.InputStream; /** * Created by user on 16-08-2015. */ public class Camera extends Activity implements View.OnClickListener{ ImageView iv; […]

Android中SHA1哈希实现的问题

我有两个用于计算SHA1的小片段。 一个是非常快但似乎它是不正确的,另一个是非常缓慢但正确的。 我认为FileInputStream转换为ByteArrayInputStream是个问题。 快速版: MessageDigest md = MessageDigest.getInstance(“SHA1”); FileInputStream fis = new FileInputStream(“path/to/file.exe”); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(fis.toString().getBytes()); DigestInputStream dis = new DigestInputStream(byteArrayInputStream, md); BufferedInputStream bis = new BufferedInputStream(fis); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); int ch; while ((ch = dis.read()) != -1) { byteArrayOutputStream.write(ch); } byte[] newInput = byteArrayOutputStream.toByteArray(); System.out.println(“in digest : ” + byteArray2Hex(dis.getMessageDigest().digest())); […]

在Android VideoView / MediaController上禁用缓冲

我们正在三星Galaxy Tab上编写Android应用程序。 我们有内窥镜(医疗手术摄像头)作为DV输入,我们希望将DVvideo直播到平板电脑。 作为流媒体服务器,我们有VLC播放器和RTSP流。 编码工作正常,通过网络(rtsp)流到另一台计算机是好的(<1s)。 但是,如果我们在Galaxy Tab上打开RTSP流,则会有6到7秒的延迟。 我试图设置比特率编码(即使最低不起作用,流延迟结果相同)。 所以我认为Android本身必须有某种网络缓存或视频缓存。 我用Google搜索并没有find一种方法来禁用甚至修改videoview / mediacontroller上的缓存。 有没有人知道如何调整Android Streaming View? 编辑:我发现必须是限制video流速度的内部缓冲区大小。 LogCat告诉我AweSomePlayer是Videoplayer的负责人。 那么下一个问题:如何改变awesomeplayer缓冲大小? 我认为它是用cpp编写的。 如何通过eclipse / java / android访问这个预编译的代码?

在Android上播放音频RTMP流

有没有人使用http://code.google.com/p/android–rtmp-client在Android上播放音频RTMP流,或者知道任何其他非Flash解决方案。 android rtmp源附带的示例将音频记录到文件中,但我正在查找通过扬声器(或蓝牙)播放的示例代码。 在Android中播放音频RTMP流的最简单方法是部分讨论需要什么。

NanoHTTPD。 将InputStream缓存到文件并继续流式传输

我想在MediaPlayer中播放数据时缓存数据。 在我阅读时,有一种方法可以做到这一点 – 创建自己的本地http服务器并将本地URL设置为MediaPlayer的setDataSource(字符串路径)。 我使用NanoHTTPD作为本地服务器。 有服务代码function: @覆盖 public Response serve(String uri,Method method,Map headers,Map parms,Map files) { 尝试 { //删除/字符 URL url =新URL(uri.substring(1)); URLConnection connection = url.openConnection(); connection.connect(); 文件cacheFolder = new File(Environment.getExternalStorageDirectory(),“TracksFlowCacheNew”); Log.e(“RelayServer”,“Cache to file”+ Utils.md5(url.toExternalForm())); RelayInputStream ris = new RelayInputStream(connection.getInputStream(),new FileOutputStream(new File(cacheFolder,Utils.md5(url.toExternalForm())))); 返回新响应(Response.Status.OK,NanoHTTPD.MIME_DEFAULT_BINARY,ris); } catch(MalformedURLException e) { // TODO自动生成的catch块 e.printStackTrace(); } catch(FileNotFoundException e) { // […]

MediaPlayer / VideoView – 从URL流式传输然后保存video进行缓存?

我想从URL(HTTP)流式传输流优化video,以便在开始播放之前将延迟时间降至最低,然后将其保存在缓存中以供后续播放。 但是,我似乎无法做到这一点,因为MediaPlayer / VideoView似乎没有提供任何方法来处理我可以用来将其写入文件的video。 我需要首先流式传输然后第二次下载以便能够缓存它,或者放弃流式传输并首先下载整个事情,这似乎很疯狂。 我已经把整件事记在了内存中,但是Android API并没有让我访问它。 其他人不久前曾问过这个问题,但回应很少。 有没有人对此有明确的答案?

“电池保护程序”function可以杀死我的音乐服务

我正在为Android构建音乐流媒体应用。 在这个应用程序中,我有一个Service ,负责从HTTP服务器播放音频。 在玩之前,我确保startForeground()并获取一个部分WakeLock ,这样我的服务就不会被杀死。 我还得到一个WifiLock ,以防万一。 该服务工作正常…只要我的手机没有“省电模式”。 我打开电池并断开手机与电源的连接,我的服务就会被火烧死! 不幸的是,似乎没有调用onDestroy() ,所以我的startForeground()通知仍然可见,即使服务已经死了。 这款手机是三星Galaxy S6,搭载Android 6.0.1。 两个问题: 有没有一种方法可以保持服务活着,尽管电池保护程序东西? 如果没有,我想知道至少我的服务被杀,以便我可以做一些清理(删除通知和内部的东西)。 有什么建议么?

Android:MediaPlayer,如何获取音频流的属性?

我可以使用MediaPlayer接口成功收听音频流,但是如何获取流的属性,如当前比特率或流文本(许多流如在线无线电包括当前正在播放的音轨)? 我试图find这些信息,但不能,如果这些东西可能是在android开发网站上的某个地方列出各种可用的’属性’列出?