Note that there are some explanatory texts on larger screens.

plurals
  1. POandroid media player shows audio but no video
    primarykey
    data
    text
    <p>I am using media player to stream a video. It only plays the audio but not the video. Could anyone help? My code is below.</p> <pre><code>public class VideoViewApplication extends Application { @Override public void onCreate() { } @Override public void onTerminate() { } } public class VideoViewDemo extends Activity implements OnErrorListener,OnBufferingUpdateListener, OnCompletionListener, MediaPlayer.OnPreparedListener, SurfaceHolder.Callback { private static final String TAG = "VideoViewDemo"; private MediaPlayer mp; private EditText mPath; private SurfaceHolder holder; private ImageButton mPlay; private ImageButton mPause; private ImageButton mReset; private ImageButton mStop; private String current; private SurfaceView mPreview; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); mPreview = (SurfaceView) findViewById(R.id.surface); mPath = (EditText) findViewById(R.id.path); mPath.setText("rtsp://video2.americafree.tv/AFTVHorrorH26496.sdp"); mPlay = (ImageButton) findViewById(R.id.play); mPause = (ImageButton) findViewById(R.id.pause); mReset = (ImageButton) findViewById(R.id.reset); mStop = (ImageButton) findViewById(R.id.stop); mPlay.setOnClickListener(new OnClickListener() { public void onClick(View view) { playVideo(); } }); mPause.setOnClickListener(new OnClickListener() { public void onClick(View view) { if (mp != null) { mp.pause(); } } }); mReset.setOnClickListener(new OnClickListener() { public void onClick(View view) { if (mp != null) { mp.seekTo(0); } } }); mStop.setOnClickListener(new OnClickListener() { public void onClick(View view) { if (mp != null) { current = null; mp.stop(); mp.release(); } } }); // getWindow().setFormat(PixelFormat.TRANSPARENT); holder = mPreview.getHolder(); holder.addCallback(this); holder.setFixedSize(100, 100); runOnUiThread(new Runnable(){ public void run(){ playVideo(); } }); } private void playVideo() { try { final String path = mPath.getText().toString(); Log.v(TAG, "path: " + path); if (path.equals(current) &amp;&amp; mp != null) { mp.start(); return; } current = path; mp = new MediaPlayer(); mp.setOnErrorListener(this); mp.setOnBufferingUpdateListener(this); mp.setOnCompletionListener(this); mp.setOnPreparedListener(this); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setScreenOnWhilePlaying(true); mp.setDisplay(mPreview.getHolder()); mp.setDataSource(path); mp.prepare(); Log.v(TAG, "Duration: ===&gt;" + mp.getDuration()); mp.start(); } catch (Exception e) { Log.e(TAG, "error: "+ e.getMessage(), e); if (mp != null) { mp.stop(); mp.release(); } } } public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) { Log.d(TAG, "surfaceChanged called"); } public void surfaceCreated(SurfaceHolder arg0) { Log.d(TAG, "surfaceCreated called"); } public void surfaceDestroyed(SurfaceHolder arg0) { Log.d(TAG, "surfaceDestroyed called"); } public void onPrepared(MediaPlayer arg0) { Log.d(TAG, "onPrepared called"); } public void onCompletion(MediaPlayer arg0) { Log.d(TAG, "onCompletion called"); } public void onBufferingUpdate(MediaPlayer mediaPlayer, int percent) { Log.d(TAG, "onBufferingUpdate called ---&gt; percent:" + percent); } public boolean onError(MediaPlayer mediaPlayer, int what, int extra) { Log.e(TAG, "onError---&gt; what:"+what+" extra:"+extra); if (mediaPlayer != null) { mediaPlayer.stop(); mediaPlayer.release(); } return true; } } &lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" &gt; &lt;EditText android:id="@+id/path" android:layout_width="fill_parent" android:layout_height="wrap_content" /&gt; &lt;SurfaceView android:id="@+id/surface" android:layout_width="fill_parent" android:layout_height="fill_parent"&gt; &lt;/SurfaceView&gt; &lt;LinearLayout android:orientation="horizontal" android:layout_height="wrap_content" android:layout_width="fill_parent" &gt; &lt;ImageButton android:id="@+id/play" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/play"/&gt; &lt;ImageButton android:id="@+id/pause" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/pause"/&gt; &lt;ImageButton android:id="@+id/reset" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/reset"/&gt; &lt;ImageButton android:id="@+id/stop" android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/stop"/&gt; &lt;/LinearLayout&gt; &lt;/LinearLayout&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload