Ich bin auf der Suche nach einem Weg in Android zu In-Memory-Audio in einer Weise analog zur waveOutOpen
Familie von Methoden in Windows-Programmierung zu spielen.Low-Level-Audio-API für Android
Die waveOut...
Methoden im Wesentlichen lassen eine Anwendung erstellen Arrays von Beispielwerten (wie In-Memory-WAV-Dateien ohne die Header) und dump sie in eine Warteschlange für die sequenzielle Wiedergabe. Windows wechselt nahtlos von einem Array zum nächsten. Solange die Anwendung Arrays vor der Wiedergabe in die Warteschlange zurücklegt, kann das Programm fortlaufende Audiodaten beliebiger Länge erstellen und wiedergeben. Die Windows-API enthält außerdem einen Rückrufmechanismus, mit dem die Anwendung Fortschritt anzeigen und zusätzliche Puffer laden kann.
Soweit ich das beurteilen kann, ermöglicht es die Android-Audio-API einer Anwendung, eine Datei vom lokalen Speicher oder einer URL oder aus einem Speicherstream abzuspielen. Gibt es eine Möglichkeit, Android dazu zu bringen, Anrufe MediaPlayer.start()
"in Warteschlange" zu bringen, so dass ein Spieler (ohne Pannen) in den nächsten übergeht, wenn der Spielablauf abgeschlossen ist? Es scheint, dass Jet
so etwas tut, aber nur mit seiner eigenen internen Synthese-Engine.
Gibt es eine andere Möglichkeit, auf Android-Audio in einer waveOutOpen
Weise zuzugreifen?
Danke, das wie das, was ich suchte. Weißt du, ob das im Emulator funktioniert? In Windows Mobile funktionierten die waveOutWrite-Methoden nur im Emulator (viele Pausen und Stottern), während sie in den echten Geräten funktionierten. – MusiGenesis
Ich habe es nicht persönlich versucht, aber ich fand es, als ich nach einer Möglichkeit suchte, MP3-Inhalte aus einem Stream abzuspielen. Die Verwendung von MediaPlayer im Emulator funktioniert einwandfrei, es sei denn, Sie haben eine Verbindung zum debugger. Es kann ähnlich sein mit AudioTrack. – plugmind
Ich bin mir ziemlich sicher, dass sowohl der MediaPlayer als auch der SoundPool (ich kenne diesen Punkt schon früher) heute AudioTrack intern verwenden, also würde ich sagen, dass es definitiv läuft (besonders wenn es darum geht, wie es läuft) auch meinen eigenen Code). –