我正试图在我的一个媒体应用程序中添加Google Cast功能,该应用程序主要处理本地存储的媒体。由于cast接收器无法直接访问存储在设备上的本地文件,所以我使用NanoHTTPD运行一个简单的way服务器,基本上只是为FileInputStream提供我需要cast接收器加载的内容。
这将确定为一个简单的URL,包括电话的intranet IP地址以及NanoHTTPD子类的构造函数中指定的端口。然而,这是不可能的。相反,服务结果似乎是一个空流,因此是一个空文件,而设备上的实际文件被证明是存在的和非空的(应用程序本身可以读取它)。
NanoHTTTPD子类:
package de.julianostarek.musicplayer.Server;
import android.util.Log;
import android.widget.Toast;
import java.io.FileInputStream;
import java.util.Map;
import fi.iki.elonen.NanoHTTPD;
/**
* Created by Julian Os on 13.02.2016.
*/
public class LocalServer extends NanoHTTPD {
public static final String TAG = "LocalServer.class";
public LocalServer(int port) {
super(port);
}
public LocalServer(String hostname, int port) {
super(hostname, port);
Log.e(TAG, hostname + ":" + port);
}
@Override
public Response serve(IHTTPSession session) {
try {
return new Response(Response.Status.OK, "audio/flac", session.getInputStream());
}catch (Exception e) {
Log.e(TAG, "Serving failed: " + e.toString()); return null; }
}
}发布于 2016-02-18 21:17:51
我在之前的一个项目中遇到了这个问题。我也是从NanoHTTPD开始的,但是我不记得到底是什么,也不记得为什么我要改变它来使用一个转换设备。但是,您可以查看我的版本:https://github.com/entertailion/Caster/blob/master/src/com/entertailion/java/caster/HttpServer.java
发布于 2016-02-15 12:34:55
您是如何访问NanoHTTPD启动的服务器的?去横过所有的T和点缀我所有的东西,确保:
NanoHTTPD在一个服务线程上。
提供一个简单的helloworld.html来测试它。
最好使用WebView来查看,而不是专用的应用程序。
请求访问网络的权限。
除了WebView之外,如果可以使用另一个实际的设备来访问这个丢弃服务器的话.
https://stackoverflow.com/questions/35386103
复制相似问题