Load a file from external storage to Inputstream

android, android-file, inputstream

Solution

Try

File file = new File(Uri.toString());
FileInputStream fileInputStream = new FileInputStream(file);

Then you can read from the stream.

Problem

i have a video file in my external directory. how can i load it to inputstream variable. For the time being i am reading file in the res/raw folder but i want to read it from the sdcard. also i dont know about the name of the file but its path will be recieved through intent. check the following code ``` public class SonicTest extends Activity { VideoView videoView; String uri; InputStream soundFile; File file; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public void play(View view) { new Thread(new Runnable() { public void run() { float speed= (float) 1.0; float pitch= (float) 1.5; float rate= (float) 1.0; uri= Environment.getExternalStorageDirectory().toString(); uri=uri+"/video.3gp"; AndroidAudioDevice device = new AndroidAudioDevice(22050, 1); Sonic sonic = new Sonic(22050, 1); byte samples[] = new byte[4096]; byte modifiedSamples[] = new byte[2048]; InputStream soundFile = null; //soundFile = getContentResolver().openInputStream(Uri.parse(uri)); soundFile=getResources().openRawResource(R.raw.video3); Log.i("testing","check if SoundFile is correct "+soundFile); int bytesRead; if(soundFile != null) { sonic.setSpeed(speed); sonic.setPitch(pitch); sonic.setRate(rate); do { try { bytesRead = soundFile.read(samples, 0, samples.length); } catch (IOException e) { e.printStackTrace(); return; } if(bytesRead > 0) { sonic.putBytes(samples, bytesRead); } else { sonic.flush(); } int available = sonic.availableBytes(); if(available > 0) { if(modifiedSamples.length < available) { modifiedSamples = new byte[available*2]; } sonic.receiveBytes(modifiedSamples, available); device.writeSamples(modifiedSamples, available); } } while(bytesRead > 0); device.flush(); } } } ).start(); }} ```

Original source

Related problems