reduv
27/07/12, 15:04:24
Hola a todos, estoy intentando hacer una aplicación que copie unos audios en mp3 de la carpeta raw del proyecto a la memoria externa sd, éste es el código que uso. Me crea bien la carpeta y el archivo, pero éste no se reproduce, me sale el mensaje "El reproductor no admite este tipo de archivo de audio". ¿Sabríais decirme por qué sucede esto?Gracias
File sdCard, directory = null;
String nombreMP3 = "dignidad.wav";
BufferedInputStream entrada = null;
BufferedOutputStream salida = null;
int len=0;
sdCard = Environment.getExternalStorageDirectory();
directory = new File( sdCard.getAbsolutePath() + "/CarpetaAplicacion2");
if (!directory.exists()){
directory.mkdir();
}
File f = new File(directory, nombreMP3);
try {
entrada = new BufferedInputStream(getResources().openRawResource (R.raw.dignidad));
salida = new BufferedOutputStream((new FileOutputStream(f)),4096);
byte[] buff = new byte[4096];
while ((len=entrada.read()) > 0){
synchronized (buff){
salida.write(buff,0,len);
salida.flush();}
}
} catch (IOException ex) {
if( entrada != null){
try {
entrada.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
if (salida != null) {
try {
salida.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}
finally{
if( entrada != null){
try {
entrada.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
if (salida != null) {
try {
salida.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
File sdCard, directory = null;
String nombreMP3 = "dignidad.wav";
BufferedInputStream entrada = null;
BufferedOutputStream salida = null;
int len=0;
sdCard = Environment.getExternalStorageDirectory();
directory = new File( sdCard.getAbsolutePath() + "/CarpetaAplicacion2");
if (!directory.exists()){
directory.mkdir();
}
File f = new File(directory, nombreMP3);
try {
entrada = new BufferedInputStream(getResources().openRawResource (R.raw.dignidad));
salida = new BufferedOutputStream((new FileOutputStream(f)),4096);
byte[] buff = new byte[4096];
while ((len=entrada.read()) > 0){
synchronized (buff){
salida.write(buff,0,len);
salida.flush();}
}
} catch (IOException ex) {
if( entrada != null){
try {
entrada.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
if (salida != null) {
try {
salida.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
}
finally{
if( entrada != null){
try {
entrada.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}}
if (salida != null) {
try {
salida.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}