1
- package com .fpvout .digiview ;
1
+ package com .fpvout .digiview . streaming ;
2
2
3
3
import android .app .Notification ;
4
4
import android .app .NotificationChannel ;
@@ -32,6 +32,7 @@ public class StreamingService extends Service {
32
32
private static RtmpDisplay rtmpDisplayBase ;
33
33
private static int dpi ;
34
34
private String endpoint ;
35
+
35
36
@ Nullable
36
37
@ Override
37
38
public IBinder onBind (Intent intent ) {
@@ -54,7 +55,7 @@ public void onCreate() {
54
55
@ Override
55
56
public int onStartCommand (Intent intent , int flags , int startId ) {
56
57
Log .d (TAG , "Start" );
57
- endpoint = String .format ("%s/%s" , sharedPreferences .getString ("RtmpUrl " , "" ), sharedPreferences .getString ("RtmpKey " , "" ));
58
+ endpoint = String .format ("%s/%s" , sharedPreferences .getString ("StreamRtmpUrl " , "" ), sharedPreferences .getString ("StreamRtmpKey " , "" ));
58
59
prepareStreaming ();
59
60
startStreaming ();
60
61
@@ -64,31 +65,45 @@ public int onStartCommand(Intent intent, int flags, int startId) {
64
65
private void prepareStreaming () {
65
66
stopStreaming ();
66
67
rtmpDisplayBase = new RtmpDisplay (appContext , true , connectChecker );
67
- if (!sharedPreferences .getString ("RtmpUsername " , "" ).isEmpty () && !sharedPreferences .getString ("RtmpPassword " , "" ).isEmpty ()) {
68
- rtmpDisplayBase .setAuthorization (sharedPreferences .getString ("RtmpUsername " , "" ), sharedPreferences .getString ("RtmpPassword " , "" ));
68
+ if (!sharedPreferences .getString ("StreamRtmpUsername " , "" ).isEmpty () && !sharedPreferences .getString ("StreamRtmpPassword " , "" ).isEmpty ()) {
69
+ rtmpDisplayBase .setAuthorization (sharedPreferences .getString ("StreamRtmpUsername " , "" ), sharedPreferences .getString ("StreamRtmpPassword " , "" ));
69
70
}
70
71
rtmpDisplayBase .setIntentResult (mediaProjectionResultCode , mediaProjectionData );
71
72
}
72
73
73
74
private void startStreaming () {
74
75
if (!rtmpDisplayBase .isStreaming ()) {
76
+ StreamResolution streamResolution = StreamResolution .getResolution (sharedPreferences .getString ("StreamResolution" , StreamResolution .DEFAULT ));
75
77
if (rtmpDisplayBase .prepareVideo (
76
- Integer . parseInt ( sharedPreferences . getString ( "OutputWidth" , "1280" ) ),
77
- Integer . parseInt ( sharedPreferences . getString ( "OutputHeight" , "720" ) ),
78
- Integer . parseInt (sharedPreferences .getString ("OutputFramerate " , "60" )),
79
- Integer . parseInt (sharedPreferences .getString ("OutputBitrate " , "1200" )) * 1024 ,
78
+ streamResolution . getWidth ( ),
79
+ streamResolution . getHeight ( ),
80
+ StreamFramerate . getFramerate (sharedPreferences .getString ("StreamFramerate " , StreamFramerate . DEFAULT )),
81
+ StreamBitrate . getBitrate (sharedPreferences .getString ("StreamBitrate " , StreamBitrate . DEFAULT )) ,
80
82
0 ,
81
83
dpi
82
84
)) {
83
85
boolean audioInitialized ;
84
- if (sharedPreferences .getString ("AudioSource" , "0" ).equals ("internal" ) && Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
85
- audioInitialized = rtmpDisplayBase .prepareInternalAudio (64 * 1024 , 32000 , true , false , false );
86
+ if (sharedPreferences .getString ("StreamAudioSource" , StreamAudioSource .DEFAULT ).equals (StreamAudioSource .INTERNAL ) && Build .VERSION .SDK_INT >= Build .VERSION_CODES .Q ) {
87
+ audioInitialized = rtmpDisplayBase .prepareInternalAudio (
88
+ StreamAudioBitrate .getBitrate (sharedPreferences .getString ("StreamAudioBitrate" , StreamAudioBitrate .DEFAULT )),
89
+ StreamAudioSampleRate .getSampleRate (sharedPreferences .getString ("StreamAudioSampleRate" , StreamAudioSampleRate .DEFAULT )),
90
+ sharedPreferences .getBoolean ("StreamAudioStereo" , true ),
91
+ false ,
92
+ false
93
+ );
86
94
} else {
87
- audioInitialized = rtmpDisplayBase .prepareAudio (Integer .parseInt (sharedPreferences .getString ("AudioSource" , "0" )), 64 * 1024 , 32000 , false , false , false );
95
+ audioInitialized = rtmpDisplayBase .prepareAudio (
96
+ StreamAudioSource .getAudioSource (sharedPreferences .getString ("StreamAudioSource" , StreamAudioSource .DEFAULT )),
97
+ StreamAudioBitrate .getBitrate (sharedPreferences .getString ("StreamAudioBitrate" , StreamAudioBitrate .DEFAULT )),
98
+ StreamAudioSampleRate .getSampleRate (sharedPreferences .getString ("StreamAudioSampleRate" , StreamAudioSampleRate .DEFAULT )),
99
+ sharedPreferences .getBoolean ("StreamAudioStereo" , true ),
100
+ false ,
101
+ false
102
+ );
88
103
}
89
104
90
105
if (audioInitialized ) {
91
- if (!sharedPreferences .getBoolean ("RecordAudio " , true )) {
106
+ if (!sharedPreferences .getBoolean ("StreamRecordAudio " , true )) {
92
107
rtmpDisplayBase .disableAudio ();
93
108
} else {
94
109
rtmpDisplayBase .enableAudio ();
@@ -146,8 +161,8 @@ public static void init(Context context, ConnectCheckerRtmp connectCheckerRtmp)
146
161
if (rtmpDisplayBase == null ) {
147
162
sharedPreferences = PreferenceManager .getDefaultSharedPreferences (appContext );
148
163
rtmpDisplayBase = new RtmpDisplay (appContext , true , connectChecker );
149
- if (!sharedPreferences .getString ("RtmpUsername " , "" ).isEmpty () && !sharedPreferences .getString ("RtmpPassword " , "" ).isEmpty ()) {
150
- rtmpDisplayBase .setAuthorization (sharedPreferences .getString ("RtmpUsername " , "" ), sharedPreferences .getString ("RtmpPassword " , "" ));
164
+ if (!sharedPreferences .getString ("StreamRtmpUsername " , "" ).isEmpty () && !sharedPreferences .getString ("StreamRtmpPassword " , "" ).isEmpty ()) {
165
+ rtmpDisplayBase .setAuthorization (sharedPreferences .getString ("StreamRtmpUsername " , "" ), sharedPreferences .getString ("StreamRtmpPassword " , "" ));
151
166
}
152
167
}
153
168
}
0 commit comments