मुझे एक वीडियो स्ट्रीम करने और वेबपृष्ठ में निरंतर खेलने की आवश्यकता है। मैं अपने एंड्रॉइड ऐप में सर्वर चलाने के लिए Nanohttpd लाइब्रेरी का उपयोग कर रहा हूं। जब पृष्ठ लोड होता है तो मैं वीडियो को स्ट्रीम और चलाने में सक्षम हो सकता हूं। एक बार वीडियो खेलने के बाद मैं दूसरी बार वीडियो चलाने में सक्षम नहीं हो सकता। हर बार मुझे वीडियो चलाने के लिए पेज रीफ्रेश करने की आवश्यकता होती है। दूसरी बार खेलने की कोशिश करते समय मुझे निम्न त्रुटि मिलती है।नैनो एचटीपीडीडी का उपयोग कर वीडियो स्ट्रीमिंग, त्रुटि: java.net.SocketException: sendto विफल: EPIPE (टूटा हुआ पाइप)
java.net.SocketException: sendto failed: EPIPE (Broken pipe)
at libcore.io.IoBridge.maybeThrowAfterSendto(IoBridge.java:546)
at libcore.io.IoBridge.sendto(IoBridge.java:515)
at java.net.PlainSocketImpl.write(PlainSocketImpl.java:504)
at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:37)
at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:266)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.sendBody(NanoHTTPD.java:1386)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.sendBodyWithCorrectEncoding(NanoHTTPD.java:1359)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.sendBodyWithCorrectTransferAndEncoding(NanoHTTPD.java:1349)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.send(NanoHTTPD.java:1335)
at server.http.android.androidhttpserver.server.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:769)
at server.http.android.androidhttpserver.server.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:186)
at java.lang.Thread.run(Thread.java:818)
Caused by: android.system.ErrnoException: sendto failed: EPIPE (Broken pipe)
at libcore.io.Posix.sendtoBytes(Native Method)
at libcore.io.Posix.sendto(Posix.java:176)
at libcore.io.BlockGuardOs.sendto(BlockGuardOs.java:278)
at libcore.io.IoBridge.sendto(IoBridge.java:513)
at java.net.PlainSocketImpl.write(PlainSocketImpl.java:504)
at java.net.PlainSocketImpl.access$100(PlainSocketImpl.java:37)
at java.net.PlainSocketImpl$PlainSocketOutputStream.write(PlainSocketImpl.java:266)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.sendBody(NanoHTTPD.java:1386)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.sendBodyWithCorrectEncoding(NanoHTTPD.java:1359)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.sendBodyWithCorrectTransferAndEncoding(NanoHTTPD.java:1349)
at server.http.android.androidhttpserver.server.NanoHTTPD$Response.send(NanoHTTPD.java:1335)
at server.http.android.androidhttpserver.server.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:769)
at server.http.android.androidhttpserver.server.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:186)
at java.lang.Thread.run(Thread.java:818)
मैं निम्नानुसार प्रतिक्रिया भेज रहा हूं।
@Override
public Response serve(IHTTPSession session) {
FileInputStream fis = null;
File file = new File("/storage/emulated/0/DCIM/Camera/VIDEO.mp4");
try{
if(file.exists())
{
fis = new FileInputStream(file);
}
else
Log.d("FOF :", "File Not exists:");
}catch (FileNotFoundException e)
{
e.printStackTrace();
}
return new NanoHTTPD.Response(Response.Status.OK,"video/mp4",fis, file.length());
}
वीडियो तक पहुंचने की
HTML फ़ाइल
<html><body>
<video id="video_id" width="420" autoplay loop>
<source src=http://192.168.2.6:8080/ type="video/mp4">
</video>
</body></html>
मुझे एक समाधान वेब पेज ताज़ा बिना लगातार वीडियो खेलने के लिए उपलब्ध कराएं है।
क्या GetResponse() विधि को परिभाषित करता है करता है? –
निजी प्रतिक्रिया getResponse (स्ट्रिंग संदेश) { वापसी createResponse (Response.Status.OK, "टेक्स्ट/सादा", संदेश); } – ZulNs
मुझे निम्नलिखित चेतावनी मिल रही है NanoHTTPD.java 'सेवा (java.lang.String, server.http.android.androidhttpserver.server.NanoHTTPD.Method, java.util.Map, java.util.Map , java.util.Map ) ' को बहिष्कृत किया गया है यह निरीक्षण रिपोर्ट जहां निर्दिष्ट निरीक्षण क्षेत्र में बहिष्कृत कोड का उपयोग किया जाता है। –