2016-04-12 11 views
0

Ben kodu return new NanoHTTPD.Response(Status.OK, "audio/mpeg", fis) tekrar son NanoHTTPD 2.3.0 desteklenecek gelmez How to serve a file on sdcard using NanoHTTPD (inside Android)En son NanoHTTPD 2.3.0 Android ile bir mp3 dosyası nasıl sunulur?

okudum.

return newFixedLengthResponse(fis) ile değiştirmeyi denerim, ancak yanlıştır. Bunu nasıl yapabilirim? Teşekkürler!

public class StackOverflowMp3Server extends NanoHTTPD { 

    public StackOverflowMp3Server() { 
     super(8089); 
    } 

    @Override 
    public Response serve(String uri, Method method, 
     Map<String, String> header, Map<String, String> parameters, 
     Map<String, String> files) { 
    String answer = ""; 

    FileInputStream fis = null; 
    try { 
     fis = new FileInputStream(Environment.getExternalStorageDirectory() 
       + "/music/musicfile.mp3"); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return new NanoHTTPD.Response(Status.OK, "audio/mpeg", fis); 
    } 
} 
+0

Eh nasıl beyanı yapar (varlıklar klasöründe sesi koymak) Yanıt şimdi gibi görünüyor? Ve eskisine hangi hata mesajını veriyorsun? – greenapps

+0

NanoHTTPD 2.3.0 – HelloCW

+0

kullandığımda yeni NanoHTTPD.Response (Status.OK, "audio/mpeg", fis) kodu döndürülemez. İlk soruma cevap vermeniz daha önemlidir. Neden sen değilsin IDE size yapılması gereken bir şey gösterecektir. – greenapps

cevap

3

Böyle InputStream için newChunkedResponse() yöntemi kullanabilirsiniz:

return newChunkedResponse(Status.OK, "audio/mpeg", fis);

+0

Teşekkürler! Bana daha fazla detay verebilir misin? – HelloCW

+0

Cevabı daha fazla ayrıntıyla güncelledi. –

+0

Teşekkürler, kodunuz işe yaradı! Yüzlerce satır kodla çarpıştıktan sonra – HelloCW

0

Bu kod çalışma ince

class SoundServer extends NanoHTTPD { 

    SoundServer() { 
     super(8089); 
    } 

    @Override 
    public Response serve(IHTTPSession session) { 
     InputStream myInput = null; 
     try { 
      myInput = mContext.getAssets().open("sound.mp3"); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return createResponse(Response.Status.OK, "audio/mpeg", myInput); 
    } 

    //Announce that the file server accepts partial content requests 
    private Response createResponse(Response.Status status, String mimeType, 
            InputStream message) { 
     return newChunkedResponse(status, mimeType, message); 
    } 
} 
İlgili konular