初歩的な質問なんですがjava.applet.AudioClipインターフェースにおいて定義されているloop(),stop(),play()のメソッド達はどのように実装されるものなのでしょうか。
AudioClip ac;
ac = getAudioClip(getDocumentBase(), "音楽データのある所");
ac.play();
としただけで音楽が流れると解説されているのですが、抽象メソッドであるplay()をどこでどのように実装しているのかわかりません。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
getAudioClipで取得できるのは、AudioClipインターフェースではなく、
AudioClipインターフェースを実装し、音楽データとそれを演奏する仕組みを組み込んだインスタンスです。
このインスタンスのクラス名は定義できないので、必ず含まれているAudioClipで受け取ります。
この受け取ったインスタンスのplayメソッドは、
そのインスタンスに含まれているデータを適切に再生できるような仕組みを組み込んでオーバーライドされたものです。
よって、そのplayメソッドを呼び出すだけで音楽は演奏されます。
以下は、アプレットと同じディレクトリに存在する音楽ファイルを再生するプログラムです。
音楽ファイル名はparamタグで設定します。
-----Java-----
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class audioclip extends Applet {
Button PB, SB;
AudioClip AC = null;
Label LB;
public void init() {
setLayout(new GridLayout(3, 1));
add(PB = new Button("Play"));
add(SB = new Button("Stop"));
add(LB = new Label(""));
PB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
AC = getAudioClip(getDocumentBase(), getParameter("Clip"));
AC.play();
} catch (Exception ex) { LB.setText(ex.toString()); };
};
});
SB.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (AC != null) AC.stop();
AC = null;
};
});
};
}
-----ページHTML-----
<html>
<head><title>Play Clip</title></head>
<body>
<center>
<applet codebase="." code="audioclip" width="240" height="120">
<param name="Clip" value="test.wav">
</applet>
</center>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 15:14
- Java javaの質問です 次の機能を有するメソッド4つを自クラスに作成し、実装したいです 【機能】 足し算 1 2022/06/15 17:49
- Java javaのクラスの分け方について質問です。 APIの内部用と外部用でクラスを分けたいのですがインター 2 2022/04/26 16:06
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- Java java 飾子を付けること(public static・・・) ・コンソールへの出力処理はmainメ 2 2022/06/16 19:34
- 英語 Is to play soccer fun for you? は、正しい英文ですか? 1 2023/05/08 12:37
- ノートパソコン ダイナブックのACアダプター 3 2023/08/09 12:22
- その他(買い物・ショッピング) Google Play ブックス を d払いで購入したが代金が引き落とし無 1 2022/10/26 07:32
- スピーカー・コンポ・ステレオ ディーガのデコーダーの光音声出力をPCのUSBへ入力できるインターフェースを探しています。 2 2022/09/18 02:02
- スピーカー・コンポ・ステレオ PC -> USB DAC -> スピーカーアンプ -> パッシブスピーカーでつないで音が出ない 10 2022/10/10 20:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
private static という変数の修飾
-
C#において、同じインスタンス...
-
変数名の付け方
-
生成したインスタンスを削除す...
-
VB.NET getとsetの概念がわかり...
-
C# インスタンスの破棄
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
-
複数の変数を宣言する時、同時...
-
[Visual C#] 優先される処理に...
-
サーブレットでレスポンスが返...
-
インスタンスを同じ名前で作成...
-
文字列を日付に変換でParseExce...
-
エクセル(複数インスタンス)...
-
サーブレットのスレッド管理に...
-
C#のスレッド処理について、ご...
-
MDIでフォームがアクティブにな...
-
VB6.0で、DLLを動的に参照したい
-
インスタンス生成で、○○.xxx();...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
複数の変数を宣言する時、同時...
-
private static という変数の修飾
-
VB.NET getとsetの概念がわかり...
-
C#において、同じインスタンス...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
newしないインスタンス?実体化...
-
SQLを連続発行する時の正しい(?...
-
「インスタンス」の意味をわか...
-
文字列を日付に変換でParseExce...
-
変数の参照でエラーが出てしま...
-
フォームの存在をチェックする方法
-
javaのクラスの作り方、エラー...
-
オブジェクト参照がオブジェク...
-
String a = "a"; と String b =...
-
エクセル(複数インスタンス)...
-
C#「オブジェクト参照が必要で...
-
他のファイルの変数参照
おすすめ情報