Hallo, ich bin neu in der Android-Entwicklung und arbeite an einem Spiel. Ich habe derzeit eine Eröffnungssequenz, die eine Videoansicht ist, aber ich möchte den Ton stummschalten, wenn der Benutzer die Musik im Einstellungsmenü stumm schaltet. Das Problem ist, dass ich nicht weiß, wie man die Musik in einer Videovorschau stumm schalten kann, ohne das Video komplett auszuschalten!
Antworten
Zu viele Anzeigen?Der AudioManager ist nicht immer eine gute Option, da Sie das gesamte System stummschalten...
Wenn Sie auf den MediaPlayer einer VideoView zugreifen möchten, müssen Sie MediaPlayer.OnPreparedListener und MediaPlayer.OnCompletionListener aufrufen, dann können Sie die Funktion setVolume(0f, 0f); aufrufen, um die Lautstärke auf 0 zu setzen.
Tun Sie dies:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video);
VideoView videoView = (VideoView)this.findViewById(R.id.VVSimpleVideo);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
videoView.setMediaController(mc);
String _path = "/mnt/sdcard/Movies/video5.mp4";
videoView.setVideoPath(_path);
videoView.setOnPreparedListener(PreparedListener);
videoView.requestFocus();
//Dont start your video here
//videoView.start();
}
MediaPlayer.OnPreparedListener PreparedListener = new MediaPlayer.OnPreparedListener(){
@Override
public void onPrepared(MediaPlayer m) {
try {
if (m.isPlaying()) {
m.stop();
m.release();
m = new MediaPlayer();
}
m.setVolume(0f, 0f);
m.setLooping(false);
m.start();
} catch (Exception e) {
e.printStackTrace();
}
}
};
Das Beste, was Sie tun können, ist die Verwendung von AudioManager um den Musik-Stream zu Beginn der geschnittenen Szene stumm zu schalten und die Stummschaltung wieder aufzuheben, sobald sie beendet ist: VideoView bietet keine unabhängigen Stummschaltungsfunktionen.