Wenn ich versuche, diesen Teil des Codes in Android Lollipop-Version auszuführen. Alles ist ok. Aber in Eibisch Version funktioniert nicht:Play Audio Stream mit AudioTrack in Marshmallow
public static void play() {
InputStream generetedStream = ...;
int minBufferSize = AudioTrack.getMinBufferSize(16000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT);
AudioTrack trackw = new AudioTrack(AudioManager.STREAM_MUSIC, 16000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, minBufferSize, AudioTrack.MODE_STREAM);
int bufferSize = 1024;
byte[] lin = new byte[bufferSize];
trackw.play();
int i = 0;
if (generetedStream != null) {
while (generetedStream != null && (i = generetedStream.read(lin, 0, bufferSize)) > -1) {
trackw.write(lin, 0, lin.length);
}
}
}
hinzugefügt Berechtigungen:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
Gibt es eine Veränderung in Audiotrack Eibisch Version ???
Sie nicht vergessen, Storage/etc Berechtigungen zur Laufzeit anfordern? Sie spielen aus Speicher/Internet/Ressourcen/generieren? –
Für Android-Version 5 ist alles in Ordnung. aber in der Version 6 gibt es Einbruch der Stimme –
Ich habe es. Darauf nicht angesprochen. 'InputStream generatedStream' aus Ressource oder Internet oder Speicher oder generieren Sie es selbst? –