usar studio persistencia memoria manejo interno interna imagen guardar ficheros externo externa datos crear cache archivos archivo almacenamiento android inputstream android-file

android - studio - Cargar un archivo desde el almacenamiento externo a Inputstream



persistencia de datos android (3)

Tratar

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

Entonces puedes leer de la corriente.

Tengo un archivo de video en mi directorio externo. ¿Cómo puedo cargarlo a la variable de la cadena de entrada? Por el momento estoy leyendo el archivo en la carpeta res / raw pero quiero leerlo desde la sdcard. Además, no sé el nombre del archivo, pero su ruta se recibirá a través de la intención. revisa el siguiente código

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(); }}


String fileName = "OfflineMap/maps.xml"; String path = Environment.getExternalStorageDirectory()+"/"+fileName; File file = new File(path); FileInputStream fileInputStream = new FileInputStream(file);


soundFile = openFileInput(uri);