Diferencia entre la implementación de MediaPlayer.create y setDataSource

Estoy utilizando varios objetos de reproductor de medios de bucle de algunas pistas y quiero saber que es la diferencia entre el uso de MediaPlayer.create (resId) versus manualmente la programación de los diferentes estados, utilizando setDataSource (FileDescriptor) ect .. Todavía estoy nuevo A Android, así que no tengo idea.

.create() es un método estático de la clase MediaPlayer , siempre que quieras llamar a .create() debes llamarlo por ClassName.methodName() como MediaPlayer.create()

Mientras que setDataResource() es un método en la clase MediaPlayer que será llamada a través de la instancia de MediaPlayer como

 MediaPlayer mp; mp.setDataResource("your sdCard File Path..."); 

Ahora si usas MediaPlayer.create() deberías tener un archivo de audio (mp3) en tu carpeta raw bajo res . Si no tienes carpeta raw crear uno (normalmente tenemos que crear raw carpeta en raw manualmente en nuestro proyecto) y pasar el resId de ese archivo mp3 en el método .create() como

MediaPlayer mp = MediaPlayer.create(R.raw.mp3FileName);

El segundo es el método setDataResource() se utiliza donde se desea reproducir archivos de audio a través de su SDCard pero debe asegurarse de que la ruta que da a setDataSource () es exactamente correcta. La mejor manera de hacerlo, en lugar de codificar la referencia a '/ sdcard /', es usar

 android.os.Environment.getExternalStorageDirectory() MediaPlayer mediaPlayer = new MediaPlayer(); File path = android.os.Environment.getExternalStorageDirectory(); mediaPlayer.setDataSource(path + "/fileName.mp3"); 

De esta manera usted puede conseguir la trayectoria correcta y jugar su mp3 con SDCard. Espero que esta explicación le ayudará a entender. Para más información, vea MediaPlayer desde el sitio para desarrolladores de Android

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.