Skip to content

Commit 5858a69

Browse files
committed
ANDROID: audio uses ring stream
1 parent 643d996 commit 5858a69

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/platform/android/src/net/sourceforge/smallbasic/MainActivity.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.net.URLDecoder;
1919
import java.util.Date;
2020
import java.util.HashMap;
21+
import java.util.Locale;
2122
import java.util.Map;
2223
import java.util.Properties;
2324
import java.util.Queue;
@@ -59,6 +60,7 @@ public class MainActivity extends NativeActivity {
5960
private boolean _untrusted = false;
6061
private ExecutorService _audioExecutor = Executors.newSingleThreadExecutor();
6162
private Queue<Sound> _sounds = new ConcurrentLinkedQueue<Sound>();
63+
private float _ringVolume;
6264

6365
static {
6466
System.loadLibrary("smallbasic");
@@ -128,10 +130,7 @@ public void onClick(DialogInterface dialog, int index) {
128130
}
129131

130132
public void playTone(int frq, int dur, int vol) {
131-
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
132-
float ringVolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
133-
float maxRingVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
134-
float volume = (vol / 100f) * (ringVolume / maxRingVolume);
133+
float volume = (vol / 100f) * _ringVolume;
135134
Log.i(TAG, "playTone: " + frq + " " + dur + " " + vol + " " + volume);
136135

137136
final Sound sound = new Sound(frq, dur, volume);
@@ -203,6 +202,11 @@ protected void onCreate(Bundle savedInstanceState) {
203202
} catch (Exception e) {
204203
Log.i(TAG, "Failed to start web service: ", e);
205204
}
205+
206+
AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
207+
float ringVolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
208+
float maxRingVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_RING);
209+
_ringVolume = ringVolume / maxRingVolume;
206210
}
207211

208212
private String buildRunForm(String buffer, String token) {
@@ -285,7 +289,7 @@ private Map<String, String> getPostData(DataInputStream inputStream, String line
285289
int length = 0;
286290
final String lengthHeader = "content-length: ";
287291
while (line != null && line.length() > 0) {
288-
if (line.toLowerCase().startsWith(lengthHeader)) {
292+
if (line.toLowerCase(Locale.ENGLISH).startsWith(lengthHeader)) {
289293
length = Integer.valueOf(line.substring(lengthHeader.length()));
290294
}
291295
line = readLine(inputStream);

src/platform/android/src/net/sourceforge/smallbasic/Sound.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public boolean isSilent() {
3535
public void play() {
3636
if (!_silent) {
3737
try {
38-
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
38+
AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_RING,
3939
AUDIO_SAMPLE_RATE, AudioFormat.CHANNEL_OUT_MONO,
4040
AudioFormat.ENCODING_PCM_16BIT, _sound.length, AudioTrack.MODE_STATIC);
4141
if (audioTrack.write(_sound, 0, _sound.length) == _sound.length) {

0 commit comments

Comments
 (0)