Ich habe ein Problem mit der Wiedergabe von Video in Mediaplayer. Ich habe einen Ton, aber kein Video. Ich habe alles versucht und finde keine Lösung. Oder wissen Sie vielleicht, wie man eine SDP-Datei in Videobild spielt? Hier ist der Code:kein Video-Media-Player
public class TestStream1 extends Activity implements Callback{
MediaPlayer mMediaPlayer;
String SrcPath = "rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov";
private SurfaceView mPreview;
private SurfaceHolder holder;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mPreview = (SurfaceView) findViewById(R.id.surface);
holder = mPreview.getHolder();
holder.addCallback(TestStream1.this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
holder.setFixedSize(400,300);
mMediaPlayer = new MediaPlayer();
try{
mMediaPlayer.setDataSource(SrcPath);
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.start();
}catch(Exception e){
Toast .makeText(TestStream1.this, "Fail", Toast.LENGTH_LONG).show();
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
EDIT: Layout-Datei
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<SurfaceView
android:id="@+id/surface"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
</LinearLayout>
Ich habe versucht, das gleiche in VideoView zu tun und es funktioniert gut gab es Ton und Video. Das einzige Problem ist mit Media Player. Verwenden Mediaplayer und Videobetrachtung dieselben Codecs? –
yup, sie benutzen den gleichen Mediaplayer. VideoView ist nur ein Wrapper des SurfaceHolder und ist sehr praktisch. Es bedeutet, dass der Code überprüft werden muss. Sie können für VideoView gehen, wenn Sie können. Veröffentlichen Sie Ihr Layout-XML, wenn Sie nicht möchten, und wir werden versuchen, den Code zu korrigieren. :) – Akhil
Ich meine, wenn Sie nicht ein Videobild verwenden und mit einer Oberflächenansicht fortfahren möchten – Akhil