ich mit folgenden Definition erschaffe Audiotrack.audioTrack.stop hört nicht auf Audio-Wiedergabe
audioTrack = new AudioTrack(
AudioManager.STREAM_MUSIC,
44100,
AudioFormat.CHANNEL_OUT_MONO,
AudioFormat.ENCODING_PCM_16BIT,
buffer.length * 2,
AudioTrack.MODE_STATIC);
audioTrack.write(buffer, 0, buffer.length);
audioTrack.setPositionNotificationPeriod(500);
audioTrack.setNotificationMarkerPosition(buffer.length);
progressListener = new PlaybackProgress(buffer.length);
audioTrack.setPlaybackPositionUpdateListener(progressListener);
Wenn der audioTrack beendet ist, wird das folgende aufgerufen, um den Ton zu stoppen und die Kopfposition zurückzusetzen.
private void resetAudioPlayback() {
ViewGroup.LayoutParams params = playbackView.getLayoutParams();
params.width = 0;
playbackView.setLayoutParams(params);
audioTrack.stop();
audioTrack.reloadStaticData();
playImage.animate().alpha(100).setDuration(500).start();
}
Der obige Code funktioniert einwandfrei mit Android 5.1. Aber ich habe Probleme mit 4.4.4. audioTrack.stop() aufgerufen wird, aber der Ton nicht gestoppt wird, da die reloadStaticData der Ton wieder in die Startposition zurückgespult, wiederholt es Audio. aber mit 5.1 wird es korrekt gestoppt und setzt den Puffer zurück auf den Beginn der Wiedergabe und wenn die Wiedergabetaste gedrückt wird, wird von Anfang an abgespielt.
Kann mir jemand helfen, wie kann ich dieses Problem mit Android 4.4.4?
Eigentlich habe ich schon versucht, audioTrack.pause und bündig, ist das, was wir reloadStaticData rufen Sie den Titel zurückzuspulen und es für das nächste Spiel bereit zu halten. Wenn ich pause und flush anrufe, spult die reloadStaticData die Audiodaten nicht zurück. – User