java windows静音_Java Applet中的静音

通过创建自定义的Applet Launcher来控制applet的运行环境,可以实现Java Applet的静音功能。具体做法是覆盖AppletContext和AppletStub,提供一个不执行任何操作的DummyAudioClip,从而禁用音频播放。
摘要由CSDN通过智能技术生成

如果您控制applet的部署(即托管applet的网页),您可以编写自己的Applet Launcher.启动器用作包装器,为实际的applet提供自定义环境.启动器实例化真正的applet并传递给applet环境的自定义版本(AppletStub,AppletContext.)自定义环境将AudioClip实现为“无所事事”界面.

要禁用音频,您可以覆盖AppletContext,如下所示:

class CustomAppletContext implements AppletContext

{

AppletContext realContext;

// most methods delegate to the real context, either directly, or with a little modification to hide the fact that we are using this launcher

public void setStatus(String status)

{

realContext.setStatus(status);

}

// override the getAudioClip to return a dummy clip

public AudioClip getAudioClip(URl url)

{

return new DummyAudioClip();

}

}

// An AudioClip implementation that does nothing

class DummyAudioClip implements AudioClip

{

public void loop() { }

public void play() { }

public void stop() { }

}

我们还覆盖了AppletStub,因为这是Applet从中获取AppletContext的地方

class CustomAppletStub implements AppletStub

{

AppletStub realStub;

public AppletContext getAppletContext()

{

return new CustomAppletContext(realStub.getAppletContext());

}

}

然后,你的发射器:

class AppletLauncher extends Applet

{

private Applet realApplet = new NoisyApplet();

// delegate most methods to the applet, but override the stub, to inject our

// AppletContext and AudioClip implementation

public void setAppletStub(AppletStub stub)

{

realApplet.setAppletStub(new CustomAppletStub(stub));

}

}

它看起来像很多代码,但它实际上只是几个类,并且主要用于注入新的DummyAudioClip实现.

HTH!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值