Ver la Versión Completa : [ CONSULTA ] Obtener referencia de la carpeta raw como texto
kaiser75
28/07/16, 11:09:06
Como puedo hacer para obtener la ruta de un sonido alojado en el directorio "raw" y mostrarlo como texto?. Necesito guardar el sonido en una base de datos SQlite obteniendo la referencia desde la carpeta "raw", por ejemplo "R.raw.mi_sonido.mp3" me muestra unos numeros en ves de este nombre.
Este codigo lo lanzo desde un menu contextual que al pulsar me guarda la referencia en la base de datos, las referencias a los sonidos estan en un array "misSonidos", probando este codigo en un Toast por ejemplo me muestra los numeros en ves de el nombre del sonido.
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
int elem = info.position;
Uri uri = Uri.parse("android.resource://" + getPackageName() + misSonidos[elem]);
kriogeN
28/07/16, 11:50:51
Creo que buscas esto:
https://developer.android.com/reference/android/content/res/Resources.html#getResourceEntryName(int)
De todas formas no entiendo el problema, los raws no son dinámicos, sabes cuales van a ser en todo momento y no necesitas su referencia por nombre.
Los elementos de "misSonidos" podrían ser una clase que además de la referencia id tenga su nombre.
kaiser75
28/07/16, 17:26:42
Creo que buscas esto:
https://developer.android.com/reference/android/content/res/Resources.html#getResourceEntryName(int)
De todas formas no entiendo el problema, los raws no son dinámicos, sabes cuales van a ser en todo momento y no necesitas su referencia por nombre.
Los elementos de "misSonidos" podrían ser una clase que además de la referencia id tenga su nombre.
Gracias kriogeN, ya me muestra los nombres con "getResources()", que quieres decir con que no necesitas su referencia por nombre?, basta con guardar sus Id's? :pensando:
kriogeN
28/07/16, 18:06:14
Gracias kriogeN, ya me muestra los nombres con "getResources()", que quieres decir con que no necesitas su referencia por nombre?, basta con guardar sus Id's? :pensando:
No, el id no te vale si vas a guardarlo en una BBDD, porque puede cambiar entre compilaciones.
Lo que quiero decir es que no necesitas una función para obtener el nombre de un recurso a partir de su id en tu caso, cuando almacenas en la BD ya sabes cual va a ser su nombre.
kaiser75
30/07/16, 13:18:02
Ahora tengo un pequeño problema con la Base de Datos y con el metodo "getResources()", este es el codigo que uso para obtener la referencia al sonido en la carpeta raw:
String ref_sonido = getResources().getString(misSonidos[elem]);
Esto me muestra "res/raw/sonidoEjemplo.mp3", hay manera de que solo me muestre ""sonidoEjemplo" ?
Dexafree
30/07/16, 15:39:58
Esto me muestra "res/raw/sonidoEjemplo.mp3", hay manera de que solo me muestre ""sonidoEjemplo" ?
String ref_sonido = getResources().getString(misSonidos[elem]);
String[] splits = ref_sonido.split("/"); // ["res", "raw", "sonidoEjemplo.mp3"]
String sonido_nombre = splits[splits.length-1]; // "sonidoEjemplo.mp3"
String nombre_sin_mp3 = sonido_nombre.split("\\.")[0]; "sonidoEjemplo"
kaiser75
30/07/16, 17:53:14
String ref_sonido = getResources().getString(misSonidos[elem]);
String[] splits = ref_sonido.split("/"); // ["res", "raw", "sonidoEjemplo.mp3"]
String sonido_nombre = splits[splits.length-1]; // "sonidoEjemplo.mp3"
String nombre_sin_mp3 = sonido_nombre.split("\\.")[0]; "sonidoEjemplo"
:aplausos::aplausos::aplausos: ... Fantastico!, menuda ayuda compañero, llevaba un buen rato peleandome con Android Studio , Gracias Dexafree :ok:
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.