首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NanoHTTPD提供空文件

NanoHTTPD提供空文件
EN

Stack Overflow用户
提问于 2016-02-13 22:29:37
回答 2查看 589关注 0票数 0

我正试图在我的一个媒体应用程序中添加Google Cast功能,该应用程序主要处理本地存储的媒体。由于cast接收器无法直接访问存储在设备上的本地文件,所以我使用NanoHTTPD运行一个简单的way服务器,基本上只是为FileInputStream提供我需要cast接收器加载的内容。

这将确定为一个简单的URL,包括电话的intranet IP地址以及NanoHTTPD子类的构造函数中指定的端口。然而,这是不可能的。相反,服务结果似乎是一个空流,因此是一个空文件,而设备上的实际文件被证明是存在的和非空的(应用程序本身可以读取它)。

NanoHTTTPD子类:

代码语言:javascript
复制
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; }
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-18 21:17:51

我在之前的一个项目中遇到了这个问题。我也是从NanoHTTPD开始的,但是我不记得到底是什么,也不记得为什么我要改变它来使用一个转换设备。但是,您可以查看我的版本:https://github.com/entertailion/Caster/blob/master/src/com/entertailion/java/caster/HttpServer.java

票数 0
EN

Stack Overflow用户

发布于 2016-02-15 12:34:55

您是如何访问NanoHTTPD启动的服务器的?去横过所有的T和点缀我所有的东西,确保:

NanoHTTPD在一个服务线程上。

提供一个简单的helloworld.html来测试它。

最好使用WebView来查看,而不是专用的应用程序。

请求访问网络的权限。

除了WebView之外,如果可以使用另一个实际的设备来访问这个丢弃服务器的话.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35386103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档