gpt4 book ai didi

android - TextureView onSurfaceTextureAvailable 从未调用过

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:50:56 59 4
gpt4 key购买 nike

当我的 Android 应用程序启动时,我尝试播放启动 Activity 的视频,但我遇到了永远不会调用 onSurfaceTextureAvailable 接口(interface)方法的问题。

代码如下:

public class HomeActivity extends Activity implements TextureView.SurfaceTextureListener,
MediaPlayer.OnBufferingUpdateListener, OnCompletionListener,
MediaPlayer.OnPreparedListener, MediaPlayer.OnVideoSizeChangedListener {

private MediaPlayer videoMediaPlayer;
private TextureView videoPreview;
private Bundle extras;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

videoPreview = new TextureView(this);
videoPreview.setSurfaceTextureListener(this);
extras = getIntent().getExtras();
setContentView(videoPreview);
}

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
Surface s = new Surface(surface);
Log.d("HOME", "onSurfaceTextureAvailable");
try {
videoMediaPlayer= new MediaPlayer();
Uri video = Uri.parse("android.resource://" + getPackageName() + "/"
+ R.raw.intro_video);
videoMediaPlayer.setDataSource(getApplicationContext(), video);
videoMediaPlayer.setSurface(s);
videoMediaPlayer.prepare();
videoMediaPlayer.setOnBufferingUpdateListener(this);
videoMediaPlayer.setOnCompletionListener(this);
videoMediaPlayer.setOnPreparedListener(this);
videoMediaPlayer.setOnVideoSizeChangedListener(this);
videoMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
videoMediaPlayer.start();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

// Other stuff

代码来自stackoverflow 类似question看起来他是这样工作的。

有什么建议吗?

最佳答案

要调用onSurfaceTextureAvailable(),必须启用硬件加速。您可以在 AndroidManifast.xml 文件中执行此操作

<activity
android:name="com.example.HomeActivity"
android:hardwareAccelerated="true" >
</activity>

关于android - TextureView onSurfaceTextureAvailable 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13819721/

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