2010-10-04 14 views
22

Estoy usando un reproductor multimedia.¿Cómo retomar el reproductor de medios?

Tengo la opción de iniciar, detener y pausar el reproductor. El problema que tengo es que no puedo encontrar la opción para reanudar la canción desde el punto en que estaba pausada previamente.

Cualquier ayuda que proporciones sería realmente útil.

Respuesta

89

Gracias por su atención, pero lo tengo yo

para pausar el reproductor de medios utilicé:

Mediaplayer.pause(); 
length=Mediaplayer.getCurrentPosition(); 

y para reanudar el jugador de la posición donde se detuvo últimamente se realiza mediante:

Mediaplayer.seekTo(length); 
Mediaplayer.start(); 
+0

Gracias, funciona bien para mí, – Hasmukh

+0

Funcionó para mí en Galaxy Tab 2 pero no funcionó en Acer Iconia o Nexus 7. No sé qué hay de malo en iniciar el reproductor desde la posición no 0, pero obviamente algo es. – Mark

+0

esto no funciona para mí! no hay errores, pero el sonido no se reanuda! ¿Cuál es mi error? – ConductedClever

23

creo que hay que ir a través de la documentación encontrada aquí: http://developer.android.com/reference/android/media/MediaPlayer.html

algunas citas de los documentos:

de reproducción se puede pausar y se detuvo, y la posición actual de la reproducción puede ser ajustado. La reproducción se puede pausar a través de pause(). Cuando se devuelve la llamada a pause() , el objeto MediaPlayer ingresa el estado Paused. Tenga en cuenta que la transición desde el estado Iniciado a el estado En pausa y viceversa ocurre de forma asíncrona en el motor del reproductor . Puede llevar algún tiempo antes de que el estado se actualice en llamadas al isPlaying(), y puede ser un número de segundos en el caso del contenido de transmisión de .

  • Llamada de inicio() para reanudar la reproducción para un objeto MediaPlayer pausa, y la posición reanudado la reproducción es lo mismo que donde estaba pausa. Cuando se devuelve la llamada a start() , el objeto MediaPlayer en pausa vuelve al estado Iniciado.
  • La llamada a pause() no tiene ningún efecto en un objeto MediaPlayer que ya se encuentra en el estado Detenido.

Unidos explicaron:

States of MediaPlayer

Y cita del método start() del MediaPlayer

inicio public void()

empieza o vuelve a reproducción. Si se ha pausado la reproducción previamente , la reproducción continuará desde donde se pausó. Si se detuvo la reproducción , o nunca se inició antes, la reproducción comenzará en el comenzando.

Para responder a su pregunta directamente, para reanudar la instancia de MediaPlayer en pausa desde el punto en que se pausó, use start() nuevamente en esa instancia.

12

En la respuesta aceptada, el orden correcto es

Mediaplayer.start();

Mediaplayer.seekTo (longitud);

+0

¡Gracias por esto! – ASP

-1

¿qué tal esta manera?

 package com.mycompany.audiodemo; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.media.MediaPlayer; 
import android.view.View; 

public class MainActivity extends AppCompatActivity { 

    MediaPlayer mediaPlayer=null; 
    int playPosition=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mediaPlayer = MediaPlayer.create(this,R.raw.sampleaudio); 
    } 

    public void playAudio(View view){ 

     //mediaPlayer.seekTo(playPosition); 
     mediaPlayer.start(); 

    } 

    public void pauseAudio(View view){ 
     mediaPlayer.pause(); 
     //playPosition = mediaPlayer.getCurrentPosition(); 
    } 
} 
0

Al utilizar seekTo He encontrado que a menudo comienza a jugar con el comienzo de la pista y luego se lleva jugando desde el punto de donde se estableció seekTo.

Lo que funcionó para mí fue silenciar el volumen y luego volverlo a encender una vez que el progreso actual coincide con la búsqueda actual (almacenado en global).

0
public class MainActivity extends AppCompatActivity { 

    MediaPlayer mediaPlayer; 
    public void play(View view) { 
      mediaPlayer.start(); 
    } 
    public void pause(View view){ 
      mediaPlayer.pause(); 
    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mediaPlayer= MediaPlayer.create(this,R.raw.someaudio); 
    } 
} 

Haga dos botones para reproducir y pausar. Y usa este código Funcionó para mí

Cuestiones relacionadas