This commit is contained in:
JW
2024-01-14 23:16:35 +01:00
parent 913d473442
commit cf9b882391
5 changed files with 34 additions and 22 deletions

View File

@@ -26,6 +26,8 @@ import io.github.jwdeveloper.tiktok.data.events.TikTokDisconnectedEvent;
import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent; import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent;
import io.github.jwdeveloper.tiktok.data.events.TikTokReconnectingEvent; import io.github.jwdeveloper.tiktok.data.events.TikTokReconnectingEvent;
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent; import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
import io.github.jwdeveloper.tiktok.data.events.control.TikTokConnectingEvent;
import io.github.jwdeveloper.tiktok.data.events.http.TikTokRoomDataResponseEvent;
import io.github.jwdeveloper.tiktok.data.events.room.TikTokRoomInfoEvent; import io.github.jwdeveloper.tiktok.data.events.room.TikTokRoomInfoEvent;
import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData; import io.github.jwdeveloper.tiktok.data.requests.LiveConnectionData;
import io.github.jwdeveloper.tiktok.data.requests.LiveData; import io.github.jwdeveloper.tiktok.data.requests.LiveData;
@@ -120,7 +122,7 @@ public class TikTokLiveClient implements LiveClient {
} }
setState(ConnectionState.CONNECTING); setState(ConnectionState.CONNECTING);
tikTokEventHandler.publish(this,new TikTokConnectingEvent());
var userDataRequest = new LiveUserData.Request(liveRoomInfo.getHostName()); var userDataRequest = new LiveUserData.Request(liveRoomInfo.getHostName());
var userData = httpClient.fetchLiveUserData(userDataRequest); var userData = httpClient.fetchLiveUserData(userDataRequest);
liveRoomInfo.setStartTime(userData.getStartedAtTimeStamp()); liveRoomInfo.setStartTime(userData.getStartedAtTimeStamp());
@@ -134,6 +136,7 @@ public class TikTokLiveClient implements LiveClient {
var liveDataRequest = new LiveData.Request(userData.getRoomId()); var liveDataRequest = new LiveData.Request(userData.getRoomId());
var liveData = httpClient.fetchLiveData(liveDataRequest); var liveData = httpClient.fetchLiveData(liveDataRequest);
tikTokEventHandler.publish(this, new TikTokRoomDataResponseEvent(liveData));
if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound) { if (liveData.getLiveStatus() == LiveData.LiveStatus.HostNotFound) {
throw new TikTokLiveOfflineHostException("LiveStream for Host name could not be found."); throw new TikTokLiveOfflineHostException("LiveStream for Host name could not be found.");
} }

View File

@@ -43,6 +43,7 @@ public class LiveDataMapper {
public LiveData.Response map(String json) { public LiveData.Response map(String json) {
var response = new LiveData.Response(); var response = new LiveData.Response();
response.setJson(json);
var parsedJson = JsonParser.parseString(json); var parsedJson = JsonParser.parseString(json);
var jsonObject = parsedJson.getAsJsonObject(); var jsonObject = parsedJson.getAsJsonObject();

View File

@@ -111,6 +111,7 @@ public class TikTokListenersManager implements ListenersManager {
EventConsumer eventMethodRef = (liveClient, event) -> EventConsumer eventMethodRef = (liveClient, event) ->
{ {
try { try {
method.setAccessible(true);
method.invoke(listener, liveClient, event); method.invoke(listener, liveClient, event);
} catch (Exception e) { } catch (Exception e) {
throw new TikTokEventListenerMethodException(e); throw new TikTokEventListenerMethodException(e);

View File

@@ -30,7 +30,7 @@ public class RecorderExample {
public static void main(String[] args) { public static void main(String[] args) {
TikTokLive.newClient("dash4214") TikTokLive.newClient("bangbetmenygy")
.configure(liveClientSettings -> .configure(liveClientSettings ->
{ {
liveClientSettings.setPrintToConsole(true); liveClientSettings.setPrintToConsole(true);
@@ -43,7 +43,7 @@ public class RecorderExample {
{ {
recorderSettings.setFfmpegPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\libs\\ffmpeg.exe"); recorderSettings.setFfmpegPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\libs\\ffmpeg.exe");
recorderSettings.setOutputPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\out"); recorderSettings.setOutputPath("C:\\Users\\ja\\IdeaProjects\\TikTokLiveJava\\extension-recorder\\out");
recorderSettings.setOutputFileName("test.mp4"); recorderSettings.setOutputFileName("test.flv");
})) }))
.onEvent(TikTokLiveRecorderStartedEvent.class, (liveClient, event) -> .onEvent(TikTokLiveRecorderStartedEvent.class, (liveClient, event) ->
{ {

View File

@@ -42,6 +42,7 @@ import net.bramp.ffmpeg.FFmpegExecutor;
import net.bramp.ffmpeg.RunProcessFunction; import net.bramp.ffmpeg.RunProcessFunction;
import net.bramp.ffmpeg.builder.FFmpegBuilder; import net.bramp.ffmpeg.builder.FFmpegBuilder;
import javax.net.ssl.HttpsURLConnection;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
import java.util.List; import java.util.List;
@@ -126,19 +127,20 @@ public class RecorderListener implements LiveRecorder {
} }
}); });
*/ */
var factory = new HttpClientFactory(LiveClientSettings.createDefault());
var builder = factory.client(downloadData.getFullUrl());
/*
var path = settings.getOutputPath() + File.separator + settings.getOutputFileName();
var file = new File(path);
file.getParentFile().mkdirs();
*/
liveDownloadThread = new Thread(() -> liveDownloadThread = new Thread(() ->
{ {
try {
var bufferSize = 1024; var bufferSize = 1024;
try (var in = new BufferedInputStream(new URL(downloadData.getFullUrl()).openStream(), bufferSize)) { var url = new URL(downloadData.getFullUrl());
HttpsURLConnection socksConnection = (HttpsURLConnection) url.openConnection();
var headers = LiveClientSettings.DefaultRequestHeaders();
for (var entry : headers.entrySet()) {
socksConnection.setRequestProperty(entry.getKey(), entry.getValue());
}
System.out.println(socksConnection.getResponseCode());
try (var in = new BufferedInputStream(socksConnection.getInputStream())) {
var path = settings.getOutputPath() + File.separator + settings.getOutputFileName(); var path = settings.getOutputPath() + File.separator + settings.getOutputFileName();
var file = new File(path); var file = new File(path);
file.getParentFile().mkdirs(); file.getParentFile().mkdirs();
@@ -149,8 +151,13 @@ public class RecorderListener implements LiveRecorder {
fileOutputStream.write(dataBuffer, 0, bytesRead); fileOutputStream.write(dataBuffer, 0, bytesRead);
} }
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); throw e;
} }
} catch (Exception e) {
e.printStackTrace();
;
}
}); });