Configuration de la source de données à une ID première dans MediaPlayer
-
16-09-2019 - |
Question
Dans la méthode MediaPlayer.create un identifiant à un fichier Raw peut être utilisé, mais comment utiliser cette méthode dans setDataSource?
La solution
Vous pouvez charger l'audio brut dans un flux d'entrée et de le charger dans un MediaPlayer comme vous le feriez un flux normal:
InputStream ins = getResources().openRawResource(R.raw.example);
Autres conseils
Reportez-vous à la source android.media.MediaPlayer
AssetFileDescriptor afd = context.getResources().openRawResourceFd(resid);
if (afd == null) return;
mediaPlayer.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
afd.close();
Vous pouvez ajouter try-catch au bloc.
paraphraser @ réponse de Kartik ici Obtenez URI de fichier .mp3 stocké dans res / dossier brut dans Android
Si vous souhaitez obtenir une URI ressource puis il y a deux façons:
- Utilisation Nom de la ressource
Syntaxe: android.resource: // [paquet] / [type res] / [nom res]
Exemple: Uri.parse ( "android.resource: //com.my.package/drawable/icon");
- Utilisation des ressources Id
Syntaxe: android.resource: // [paquet] / [resource_id]
Exemple: Uri.parse ( "android.resource: //com.my.package/" + R.drawable.icon);
Ce sont les exemples pour obtenir l'URI d'un fichier d'image stocké dans le dossier drawable. De même, vous pouvez obtenir des URIs res / dossier brut.
OMI la deuxième voie serait préférable que de renommer le fichier etc des ressources peut être facilement refondus.
Définir la source de données comme ceci:
CONSTANTS.RES_PREFIX = "android.resource://com.my.package/"
mp.setDataSource(getApplicationContext(), Uri.parse(CONSTANTS.RES_PREFIX + R.raw.id));