0

I'm thinking the problem in response part but did not figure out where to look out.

Error i get when playing the video:

D/MediaPlayer: Couldn't open file on client side, trying server side
MediaPlayer: error (1, -2147483648)

E/MediaPlayer: Error (1,-2147483648)

target sdk 23

min sdk 15

Testing device = api 19 kitkat

AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>

MainActivity.java

super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

    videoView = (VideoView) findViewById(R.id.videoview);

    Log.i(TAG,String.valueOf(Environment.getExternalStorageDirectory()));


    videoHttpServer = new VideoHttpServer();


    try{

        videoHttpServer.start();


    }catch (Exception exception){

        Log.i(TAG,String.valueOf(exception.getMessage()));

    }


    File file = new File("/sdcard/a1.mp4");
    Log.i(TAG,String.valueOf(file.exists()));

    Uri uri = Uri.parse("http://127.0.0.1:8089/a1.mp4");
    videoView.setVideoURI(uri);

    videoView.setMediaController(new MediaController(MainActivity.this));

    videoView.start();

}

public class VideoHttpServer extends NanoHTTPD {

    public VideoHttpServer() {
        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 {


            File file = new File("/sdcard/a1.mp4");

            fis = new FileInputStream(file);

             abc = new File(Environment.getExternalStorageDirectory()+"a1.mp4");



        } catch (Exception e) {
            // TODO Auto-generated catch block
            Log.i(TAG,String.valueOf(e.getMessage()));
        }
        return new NanoHTTPD.Response(Response.Status.OK, "video/mp4", fis,1);
    }
}

}

Ian
  • 30,182
  • 19
  • 69
  • 107
a_vasim
  • 13
  • 5

1 Answers1

0

NanoHttpd (a tiny web server in Java) is supposed to be used on the server side - look the README.md here.

Ivan Dokov
  • 121
  • 6