Transmitir y reproducir stream .m4a (Url de previsualización de Itunes) en android
Quiero transmitir y reproducir URL de vista previa de iTunes como http://a2.mzstatic.com/us/r1000/044/Music/e9/40/ec/mzm.evyxvimp.aac.p.m4a . He intentado utilizar AAC Decoder Android Library. Por lo que puedo transmitir y reproducir AAC stream urls como http://http.yourmuze.com:8000/play/paradise/l.aac . Pero dnt stream m4a urls (Logcat dice java.io.FileNotFoundException: http://a2.mzstatic.com/us/r1000/044/Music/e9/40/ec/mzm.evyxvimp.aac.p.m4a
).
¿Cómo puedo transmitir los enlaces .m4a?
- Error de MediaPlayer de Android: Error de MediaPlayer (1, -2147483648) en Stream de Internet
- Compresión de GZIP a una matriz de bytes
- Intent.ACTION_SEND WhatsApp
- No se puede transmitir YouTube Url en VLC android
- Barra de progreso mientras el reproductor multimedia se prepara
Mi código:
public class AACPlayerActivity extends Activity implements OnClickListener,PlayerCallback{ private Button btnPlay; private ProgressBar progress; private Handler uiHandler; private MultiPlayer multiPlayer; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnPlay = (Button)findViewById(R.id.playButton); progress = (ProgressBar)findViewById(R.id.progress); progress.setVisibility(View.INVISIBLE); btnPlay.setOnClickListener(this); uiHandler = new Handler(); } public void playerException(Throwable arg0) { // TODO Auto-generated method stub } public void playerMetadata(String arg0, String arg1) { // TODO Auto-generated method stub } public void playerPCMFeedBuffer(boolean arg0, final int audioBufferSizeMs, final int audioBufferCapacityMs) { // TODO Auto-generated method stub uiHandler.post(new Runnable() { public void run() { // TODO Auto-generated method stub progress.setProgress( audioBufferSizeMs * progress.getMax() / audioBufferCapacityMs ); } }); } public void playerStarted() { uiHandler.post(new Runnable() { public void run() { // TODO Auto-generated method stub progress.setProgress( 0 ); progress.setVisibility( View.VISIBLE ); } }); } public void playerStopped(int arg0) { // TODO Auto-generated method stub uiHandler.post(new Runnable() { public void run() { // TODO Auto-generated method stub progress.setVisibility( View.INVISIBLE ); } }); } public void onClick(View v) { // TODO Auto-generated method stub if(btnPlay.getText().equals("Play")){ start(); btnPlay.setText("stop"); }else{ stop(); } } private void start() { stop(); // we cannot do it in playerStarted() - it is too late: multiPlayer = new MultiPlayer(this,MultiPlayer.DEFAULT_AUDIO_BUFFER_CAPACITY_MS, MultiPlayer.DEFAULT_DECODE_BUFFER_CAPACITY_MS); multiPlayer.playAsync("http://a2.mzstatic.com/us/r1000/044/Music/e9/40/ec/mzm.evyxvimp.aac.p.m4a"); } private void stop() { if (multiPlayer != null) { multiPlayer.stop(); multiPlayer = null; } }
Actualizaciones
- Trato de usar ServeStream dice que la url no se pudo abrir.
- Trato de usar Vitamio SDK también falla al reproducir los
itunes preview Urls
.
¿Es posible reproducir itunes preview urls
en android?
- Lectura de Android desde un flujo de entrada eficientemente
- ¿Cómo hacer que AAC se busque en streaming HTTP usando MediaPlayer para Android?
- VideoView Flujo de carga insuficiente
- Android mediaplayer flujo de archivos mp3 en línea
- Cómo grabar vídeo en Android en Stream
- Buffer de flujo de audio
- Transmisión con Android MediaPlayer en SDK 8
- VLC RTSP transmisión en vivo a Android
No tiene nada que ver con los formatos de los medios de comunicación, etc. Apple simplemente evita que los clientes que no sean de Apple accedan a las vistas previas. Puede spoof User-Agent cabecera y el acceso a las vistas previas.
Lee mi entrada de blog relevante aquí: http://ahmetalpbalkan.com/blog/how-to-bypass-itunes-music-previews-protection/ Es por eso que obtienes 404 mientras tocas música en Android. Esto debería responder a tu pregunta.
Echa un vistazo a ServeStream :
Navegador del servidor de medios HTTP y reproductor de streaming para Android.
caracteristicas:
- Soporta Android 2.2+, 3.0+ (Sin soporte para <2.2)
- Reproduce archivos multimedia compatibles con Android
- Soporte adicional para las listas de reproducción m3u, m3u8, pls y asx
- Soporta multitarea / reproducción de audio en el fondo
- Modos de repetición y reproducción aleatoria
- Soporte de despertador
- Widget de la pantalla de inicio
- Utiliza el análisis HTML para permitir la navegación de servidores de medios HTTP que sirven páginas HTML
M4A y AAC son compatibles con Android. Yo recomendaría leer esta página: http://developer.android.com/guide/appendix/media-formats.html
Sólo un par de cosas que debe tener en cuenta a) Los dispositivos más antiguos pueden no tener ningún codificado particular o soporte de formato (especialmente, si usted va por debajo de OS 2.2) b) Algunos dispositivos baratos pueden tener cosas bastante extraño integrado en la pila de audio / video. Lo vi en un par de dispositivos chinos baratos.
Por lo tanto, puede intentar utilizar MediaPlayer API para reproducirlo: http://developer.android.com/reference/android/media/MediaPlayer.html
Puedes echar un vistazo al ejemplo aquí: http://blog.endpoint.com/2011/03/api-gaps-android-mediaplayer-example.html