如何使用媒体播放器在片段中的SurfaceView



因为我希望能够传递播放视频的媒体播放器,所以我想在播放视频的片段中使用 SurfaceView 而不是 VideoView。

我看了之前关于如何将MediaPlayer附加到SurfaceView的问题。问题的答案告诉我创建两个函数:

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_player);
getWindow().setFormat(PixelFormat.UNKNOWN);
mPreview = (SurfaceView)findViewById(R.id.surfaceView);
holder = mPreview.getHolder();
holder.setFixedSize(800, 480);
holder.addCallback(this);
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mp = new MediaPlayer();
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
mp.setDisplay(holder);
play();
}

不幸的是,我无法通过片段覆盖表面创建,因为片段没有该方法。我是否仍可以将 MediaPlayer 附加到片段中的 SurfaceView?

使用回调侦听器将表面视图从片段传递到父活动,然后将媒体播放器从活动附加到曲面视图,然后更新片段表面视图、演示代码、IN 片段

SurfaceView mPreview ;
private MyListener mylistener=null;
public interface MyListener extends EventListener{
void onPassSurface(SurfaceView surfaceview);
}
public void setListener (MyListener listener)
{
mylistener = listener;
}
public void updateSurfaceView(SurfaceView surfaceview)
{
mPreview=surfaceview;
}
mPreview =  (SurfaceView)findViewById(R.id.surfaceView);
mylistener.onPassSurface(mPreview);

在活动中

MyFragment  myfragment=new MyFragmment();
myfragment.setListener(new MyFragment.MyListener)
{
@Override
void onPassSurface(SurfaceView mPreview)
{
//attach Media Player Here or Write Method to attach
//media player with Surface View and Call from Here
//after attaching media player call this method
myfragment.updateSurfaceView(mPreview);
}

最新更新