Skip to content

Commit e42d117

Browse files
committed
Add internal audio streaming
1 parent 7b2fed9 commit e42d117

File tree

10 files changed

+76
-9
lines changed

10 files changed

+76
-9
lines changed

app/src/main/java/com/fpvout/digiview/SettingsActivity.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
package com.fpvout.digiview;
22

3+
import android.os.Build;
34
import android.os.Bundle;
45
import android.view.MenuItem;
56

67
import androidx.annotation.NonNull;
78
import androidx.appcompat.app.ActionBar;
89
import androidx.appcompat.app.AppCompatActivity;
10+
import androidx.preference.ListPreference;
911
import androidx.preference.PreferenceFragmentCompat;
1012

13+
import java.util.ArrayList;
14+
import java.util.Arrays;
15+
1116
public class SettingsActivity extends AppCompatActivity {
1217

1318
@Override
@@ -41,6 +46,19 @@ public static class SettingsFragment extends PreferenceFragmentCompat {
4146
@Override
4247
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
4348
setPreferencesFromResource(R.xml.root_preferences, rootKey);
49+
50+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
51+
ListPreference audioSourcePreference = findPreference("AudioSource");
52+
53+
ArrayList<CharSequence> entries = new ArrayList<>(Arrays.asList(audioSourcePreference.getEntries()));
54+
ArrayList<CharSequence> entryValues = new ArrayList<>(Arrays.asList(audioSourcePreference.getEntryValues()));
55+
56+
entries.add(getString(R.string.audio_source_internal));
57+
entryValues.add("internal");
58+
59+
audioSourcePreference.setEntries(entries.toArray(new CharSequence[0]));
60+
audioSourcePreference.setEntryValues(entryValues.toArray(new CharSequence[0]));
61+
}
4462
}
4563
}
4664
}

app/src/main/java/com/fpvout/digiview/StreamingService.java

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import android.content.SharedPreferences;
1010
import android.os.Build;
1111
import android.os.IBinder;
12+
import android.util.DisplayMetrics;
1213
import android.util.Log;
1314

1415
import androidx.annotation.Nullable;
@@ -30,6 +31,7 @@ public class StreamingService extends Service {
3031
private static Intent mediaProjectionData;
3132
private static int mediaProjectionResultCode;
3233
private static DisplayBase rtmpDisplayBase;
34+
private static int dpi;
3335
private String endpoint;
3436
@Nullable
3537
@Override
@@ -75,9 +77,24 @@ private void startStreaming() {
7577
Integer.parseInt(sharedPreferences.getString("OutputFramerate", "60")),
7678
Integer.parseInt(sharedPreferences.getString("OutputBitrate", "1200")) * 1024,
7779
0,
78-
320
79-
) && rtmpDisplayBase.prepareAudio()) {
80-
rtmpDisplayBase.startStream(endpoint);
80+
dpi
81+
)) {
82+
boolean audioInitialized;
83+
if (sharedPreferences.getString("AudioSource", "0").equals("internal") && Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
84+
audioInitialized = rtmpDisplayBase.prepareInternalAudio(64 * 1024, 32000, true, false, false);
85+
} else {
86+
audioInitialized = rtmpDisplayBase.prepareAudio(Integer.parseInt(sharedPreferences.getString("AudioSource", "0")), 64 * 1024, 32000, false, false, false);
87+
}
88+
89+
if (audioInitialized) {
90+
if (!sharedPreferences.getBoolean("RecordAudio", true)) {
91+
rtmpDisplayBase.disableAudio();
92+
} else {
93+
rtmpDisplayBase.enableAudio();
94+
}
95+
96+
rtmpDisplayBase.startStream(endpoint);
97+
}
8198
}
8299
}
83100
}
@@ -106,6 +123,8 @@ public static boolean isStreaming() {
106123

107124
public static void init(Context context) {
108125
appContext = context;
126+
DisplayMetrics dm = context.getResources().getDisplayMetrics();
127+
dpi = dm.densityDpi;
109128
if (rtmpDisplayBase == null) {
110129
rtmpDisplayBase = new RtmpDisplay(context, true, (ConnectCheckerRtmp) context);
111130
}

app/src/main/res/values-de/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@
4646
<string name="record_audio">Record audio</string>
4747
<string name="audio_source">Audio source</string>
4848
<string name="audio_source_default">Default</string>
49+
<string name="audio_source_mic">Mic</string>
50+
<string name="audio_source_cam">Camera</string>
51+
<string name="audio_source_communication">Communication</string>
52+
<string name="audio_source_performance">Performance</string>
4953
<string name="audio_source_internal">Internal audio</string>
5054
<string name="output_width">Output Width</string>
5155
<string name="output_height">Output Height</string>

app/src/main/res/values-es/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@
4545
<string name="record_audio">Record audio</string>
4646
<string name="audio_source">Audio source</string>
4747
<string name="audio_source_default">Default</string>
48+
<string name="audio_source_mic">Mic</string>
49+
<string name="audio_source_cam">Camera</string>
50+
<string name="audio_source_communication">Communication</string>
51+
<string name="audio_source_performance">Performance</string>
4852
<string name="audio_source_internal">Internal audio</string>
4953
<string name="output_width">Output Width</string>
5054
<string name="output_height">Output Height</string>

app/src/main/res/values-fr/strings.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,11 @@
4242
<string name="rtmp_key">RTMP Key</string>
4343
<string name="record_audio">Enregistrer le son</string>
4444
<string name="audio_source">Source audio</string>
45-
<string name="audio_source_default">Micro par défaut</string>
45+
<string name="audio_source_default">Par défaut</string>
46+
<string name="audio_source_mic">Mic</string>
47+
<string name="audio_source_cam">Camera</string>
48+
<string name="audio_source_communication">Communication</string>
49+
<string name="audio_source_performance">Performance</string>
4650
<string name="audio_source_internal">Audio interne</string>
4751
<string name="output_width">Output Width</string>
4852
<string name="output_height">Output Height</string>

app/src/main/res/values-pt/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@
4545
<string name="record_audio">Record audio</string>
4646
<string name="audio_source">Audio source</string>
4747
<string name="audio_source_default">Default</string>
48+
<string name="audio_source_mic">Mic</string>
49+
<string name="audio_source_cam">Camera</string>
50+
<string name="audio_source_communication">Communication</string>
51+
<string name="audio_source_performance">Performance</string>
4852
<string name="audio_source_internal">Internal audio</string>
4953
<string name="output_width">Output Width</string>
5054
<string name="output_height">Output Height</string>

app/src/main/res/values-zh/strings.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,10 @@
4545
<string name="record_audio">Record audio</string>
4646
<string name="audio_source">Audio source</string>
4747
<string name="audio_source_default">Default</string>
48+
<string name="audio_source_mic">Mic</string>
49+
<string name="audio_source_cam">Camera</string>
50+
<string name="audio_source_communication">Communication</string>
51+
<string name="audio_source_performance">Performance</string>
4852
<string name="audio_source_internal">Internal audio</string>
4953
<string name="output_width">Output Width</string>
5054
<string name="output_height">Output Height</string>

app/src/main/res/values/arrays.xml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,17 @@
1717

1818
<string-array name="audio_source_titles">
1919
<item>@string/audio_source_default</item>
20-
<!-- <item>@string/audio_source_internal</item>-->
20+
<item>@string/audio_source_mic</item>
21+
<item>@string/audio_source_cam</item>
22+
<item>@string/audio_source_communication</item>
23+
<item>@string/audio_source_performance</item>
2124
</string-array>
2225

2326
<string-array name="audio_source_values">
24-
<item>default</item>
25-
<!-- <item>internal</item>-->
27+
<item>0</item>
28+
<item>1</item>
29+
<item>5</item>
30+
<item>7</item>
31+
<item>10</item>
2632
</string-array>
2733
</resources>

app/src/main/res/values/strings.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@
4545
<string name="rtmp_key">RTMP Key</string>
4646
<string name="record_audio">Record audio</string>
4747
<string name="audio_source">Audio source</string>
48-
<string name="audio_source_default">Default Mic</string>
48+
<string name="audio_source_default">Default</string>
49+
<string name="audio_source_mic">Mic</string>
50+
<string name="audio_source_cam">Camera</string>
51+
<string name="audio_source_communication">Communication</string>
52+
<string name="audio_source_performance">Performance</string>
4953
<string name="audio_source_internal">Internal audio</string>
5054
<string name="output_width">Output Width</string>
5155
<string name="output_height">Output Height</string>

app/src/main/res/xml/root_preferences.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
app:defaultValue="true" />
8989

9090
<ListPreference
91-
app:defaultValue="default"
91+
app:defaultValue="0"
9292
app:entries="@array/audio_source_titles"
9393
app:entryValues="@array/audio_source_values"
9494
app:key="AudioSource"

0 commit comments

Comments
 (0)