Articles of 流

读取输入流时出错:软件在java服务器中导致连接中止

我基本上是想在Android设备上托管服务器。 客户端设备通过TCP连接到服务器并发送请求。 服务器执行客户端请求的操作,然后将数据写回套接字。 连接未被服务器终止,并且将通过套接字连续读取请求并回复。 注意:每个请求消息的前4个字节包含实际消息/请求的长度。 parseXmlInputAndExecuteCmd函数根据输入XML字符串的内容执行各种异步操作。 这最终会导致’allowResponse’variables的布尔值更改为true,并生成某个响应,该响应存储在名为’response’的Stringtypes的variables中。 一旦布尔值’allowResponse’变为true,线程就会恢复执行并将响应写回套接字的OutputStream 其中一些异步操作包括连接和断开与公司VPN的连接。 这可能是错误的原因吗? 使用的一些类级variables是: private volatile boolean allowResponse = false; private String response; 服务器代码: private void startServer() { try { ServerSocket serverSocket = new ServerSocket(8080); while (true) { Socket connectionSocket = serverSocket.accept(); BufferedInputStream bufInpStream = new BufferedInputStream(connectionSocket.getInputStream()); BufferedOutputStream bufOutStream = new BufferedOutputStream(connectionSocket.getOutputStream()); ByteArrayOutputStream contentLengthBaos = new ByteArrayOutputStream(); int […]

如何在Android上使用MediaPlayer流式传输经过身份validation的内容

我已经看过很多post在SO上提出这个问题,但似乎没有一个确定的答案(或者至少是我喜欢的答案!) 我有基本身份validation(用户名/密码)后面的内容保护 – 我可以使用各种HTTP下载条款下载它,但对于我的生活,我无法理清如何告诉媒体播放器流式传输(并提供认证)。 我看到一篇post暗示它是不可能的,因为MediaPlayer是所有本机代码而不是像Authenticator那样的东西。 有很多例子说明如何首先下载到缓存的副本然后再播放但是……那种糟糕的(文件可能是100的MB)。 我看到至少有一个建议以较小的块下载它,然后开始和停止播放(重定向到新文件),但那种糟糕也因为(我认为)是一个口吃(我没试过它) ) 我现在最好的想法是开始下载到缓存文件,然后当它“足够”时启动播放,同时我继续填充文件….我希望这有效(但是,再次,没有尝试过)。 我错过了一些明显的东西吗 让各种各样的部分几乎正常工作真是太痛苦了,我有点自信说必须有一种方法可以原生地传输受保护的内容(或者让它采用已经建立的合格的InputStream),但它似乎并不令人高兴。 顺便说一下,我是Mac / iPhone的家伙,也是Android的新手,所以我还在努力学习Java ……如果我错过了一些明显的东西,请相信。

Android:如何知道MediaPlayer是否暂停?

MediaPlayer.isPlaying()不允许知道MediaPlayer是停止还是暂停。 如何知道它是否暂停而未停止? 谢谢 !

Android MediaPlayer流媒体在网络更改时停止

我在Android上使用MediaPlayer传输音频。 当设备从Wi-Fi移动到蜂窝网络或反之亦然时,MediaPlayer停止播放。 通常,缓冲区中有几秒钟的音频,因此播放不会立即停止。 理想情况下,我想选择不间断播放的流,但我看不出怎么做。 我正在处理服务器上托管的mp3文件和实时广播流。

当我需要使用它2次时,如何重新打开关闭的InputStream

我目前正在使用InpuStream从我的服务器获取JSON响应。 我需要做两件事: 解析它并在屏幕上显示值 将此Feed保存在SDCard文件中 在逐个使用这两种方法时,这完全没有问题。 使用GSON进行解析: Gson gson = new Gson(); Reader reader = new InputStreamReader (myInputStream); Result result = gson.FrmJson(reader, Result.class) 并将复制到SDCard FileOutputStream f (…) f.write (buffer) 他们都已经过测试。 问题是一旦解析完成,我想写入SDCard并且它会中断。 我知道我的InputStream已关闭,这就是问题所在。 这里有一些接近我的问题: 如何缓存InputStream以供多次使用 有没有办法改进该解决方案并提供我们可以使用的东西?

使用InputStream读取文本文件

如何读取Android应用程序中的文本文件: “1.something written 2.in this file 3.is to be read by 4.the InputStream …” 所以我可以返回一个字符串,如: “something written\nin this file\nis to be read by\nthe InputStream” 我想到的是(伪代码): make an inputstream is = getAssest().open(“textfile.txt”); //in try and catch for loop{ string = is.read() and if it equals “.” (ie from 1., 2., 3. etc) add “/n” … }

在Android上获取IP Camvideo流(MJEPG)

我目前正在以3人为一组进行AndAR项目。我是负责Android手机video流的人。 我得到了一台D-Link DCS-920 IP摄像机,我发现它使用MJPEG编解码器作为直播video流,网络服务器使用Jview来观看直播。 据我所知,MJPG不是Android OS支持的文件types所以我想出了一个想法,而不是使用ImageView,我使用WebView来传输video。 我实现了一个非常简单的概念,它的工作原理! 但问题是,刷新率很糟糕。 我得到video图像(例如: http://img.androidcookie.com/android/image.jpg : http://img.androidcookie.com/android/image.jpg )来查看WebView并实现一个Timer来控制刷新率(假设它设置为30fps,每33ms刷新一次)但是它只能达到500毫秒的间隔,任何较低的间隔我注意到它不会更平滑,有时图像不会加载和连接不稳定(例如:掉落)。 难道这比我能以更快的速度刷新吗? 但是在网络服务器Jview上它没有问题! 我试图findjview的源代码,但我没有希望。 无论如何这里是我写的代码 package org.example.test; import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.widget.Button; import android.widget.EditText; public class Webview extends Activity { public WebView webView; public Timer autoUpdate; public String url; /** Called when the activity […]

将Android截屏流式传输到PC

我将介绍一个Android应用程序,由于它将有大量的受众协助,我可能需要将Android屏幕直播流式传输到PC。 你知道任何工具(免费或付费)能够做到吗? 谢谢。

从android中的HttpURLConnection获取InputStream时获取UnknownLengthHttpInputStream

HttpURLConnection.getInputStream()给出UnknownLengthHttpInputStream,由于此Document解析引发SAX解析器exception。 以下是代码 try{ URL url = new URL(uri); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(“GET”); connection.setRequestProperty(“Accept”, “application/xml”); InputStream xml = connection.getInputStream(); System.out.println(connection.getResponseCode()); DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(connection.getInputStream()); doc.getDocumentElement().normalize(); }catch(Exception e){ e.printStackTrace(); } 任何人都知道UnknownLengthHttpInputStream的原因。 我只在android中获得此错误,此代码在Java Project中完美运行。 以下是LogCat的例外: 08-08 11:07:40.490: W/System.err(1493): org.xml.sax.SAXParseException: Unexpected end of document 08-08 11:07:40.504: W/System.err(1493): at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:129) […]

Android设备之间的蓝牙音频流

我对同一主题进行了研究,发现android设备是a2dp源,音频只能从a2dp源流到a2dp接收器。 A2dp接收器可以是蓝牙耳机或蓝牙扬声器。 但我的问题是那个名为 “ 蓝牙音乐播放器 ” 的Android应用程序是如何 工作的 ? 它允许从一个移动设备流式传输到另一个 因此,在这种情况下,收听移动设备必须充当接收器。 这怎么可能? 他们使用的是其他配置文件而不是a2dp吗? 好吧,这可能是他们正在使用的不同的配置文件。 因为应用程序也需要安装在客户端。 但是如何将语音从蓝牙麦克风传输到Android设备呢? 请帮忙。