gpt4 book ai didi

android - MediaPlayer.release()后SurfaceView是否可以复用?

转载 作者:太空狗 更新时间:2023-10-29 13:36:23 33 4
gpt4 key购买 nike

假设我们有以下内容(来自 Android ApiDemos):

<?xml version="1.0" encoding="utf-8"?>

<SurfaceView android:id="@+id/surface"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
</SurfaceView>

MediaPlayer使用SurfaceView后,调用release(),SurfaceView是否可以复用?我试图创建一个新的 MediaPlayer 实例来重用 SurfaceView,但是在 setDisplay() 时出现以下错误: java.lang.IllegalArgumentException: 表面已释放

代码如下:

    mPreview = (SurfaceView) findViewById(R.id.surface);
holder = mPreview.getHolder();
holder.addCallback(this);

mMediaPlayer = new MediaPlayer();
MediaPlayer.setDataSource(url);

mMediaPlayer.setDisplay(holder);

最佳答案

试试这个:

    @Override
public void surfaceCreated(SurfaceHolder holder) {
System.out.println("===== * surfaceCreated * =====");
if(mMediaPlayer == null)
mMediaPlayer = new MediaPlayer();
mMediaPlayer .setDisplay(holder);
}

关于android - MediaPlayer.release()后SurfaceView是否可以复用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10060021/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com