Reproducción de vídeo mediante la clase MediaPlayer
Estoy tratando de hacer uso de la clase MediaPlayer
para reproducir un archivo de vídeo. El problema es que el video no se muestra en absoluto, aunque puedo escuchar el sonido en la reproducción de vídeo.
A continuación se muestra el código de actividad
- Reproduce vídeos HTML5 almacenados localmente en Android
- Vídeo con iframe no se muestra en la vista web de Android
- Los vídeos de Youtube incrustados en la vista Web de Android no se reproducen en el formato SINGLE_COLUMN
- Obtener directo Vimeo video url Android
- Cómo transmitir vídeo desde Internet a través de nanoHTTPd a VideoView
public class MainActivity extends Activity implements OnClickListener { private SurfaceView surfaceView; private Button btnPlay; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); addListener(); } private void init() { // TODO Auto-generated method stub surfaceView = (SurfaceView) findViewById(R.id.surfaceView1); btnPlay = (Button) findViewById(R.id.btnPlay); } private void addListener() { // TODO Auto-generated method stub btnPlay.setOnClickListener(this); } MediaPlayer mediaPlayer = null; @Override public void onClick(View v) { // TODO Auto-generated method stub switch (v.getId()) { case R.id.btnPlay: try{ if (mediaPlayer != null) { mediaPlayer.reset(); mediaPlayer.release(); }else{ getWindow().setFormat(PixelFormat.UNKNOWN); MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.wildlife); SurfaceHolder surfaceHolder = surfaceView.getHolder(); surfaceHolder.setFixedSize(176, 144); surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); mediaPlayer.setDisplay(surfaceHolder); mediaPlayer.start();} }catch (Exception e) { Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show(); } break; default: break; } } }
A continuación se muestra el código de layout xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <SurfaceView android:id="@+id/surfaceView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" /> <Button android:id="@+id/btnPlay" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/surfaceView1" android:layout_alignTop="@+id/surfaceView1" android:text="@string/play" /> </RelativeLayout>
Por favor dime que hay que hacer Gracias por adelantado.
- Inconsistencias con el video HTML5 en un WebView de Android
- Acceso a vídeos y fotos en Android 1.5 +
- Android cámara2 api galaxia s7
- android-abrir la galería y elegir la imagen y el vídeo
- Cómo jugar RTSP stream video (MPEG4, baseline) de una cámara con videoview de Android?
- Android muestra flujo de vídeo en MediaPlayer y codifica con MediaCodec
- No se pueden transmitir vídeos
- Detección de números y texto posible con opencv android mientras captura de video?
Establecer la altura y el ancho de la vista de superficie para rellenar el padre en el archivo xml.
<SurfaceView android:id="@+id/surfaceView1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" />
Configurar el diseño de SurfaceView en wrap_content no dimensionará un video para reproducirlo con la relación de aspecto adecuada.
Puede consultar este enlace de respuesta
https://stackoverflow.com/a/6283676/1441666
Y también este blog Play media on surfaceview usando android.media.MediaPlayer
Bueno, no sé si necesita una situación específica, pero ¿ya ha intentado FullscreenVideoView ?
Intenta resumir todos los problemas de SurfaceView y puede centrarse sólo en los botones de interfaz de usuario. Como está abierto, puede subclase FullscreenVideoView y personalizar según sus necesidades.
- Desarrollador de Google Play cambiar moneda local
- ¿Cómo encontrar el documento gradint lintOptions para android?