diff --git a/src/jvmMain/kotlin/player/MediaPlayerComponent.kt b/src/jvmMain/kotlin/player/MediaPlayerComponent.kt index 4b397bd..879dd46 100644 --- a/src/jvmMain/kotlin/player/MediaPlayerComponent.kt +++ b/src/jvmMain/kotlin/player/MediaPlayerComponent.kt @@ -6,7 +6,6 @@ import com.matthewn4444.ebml.UnSupportSubtitlesException import com.matthewn4444.ebml.subtitles.SRTSubtitles import com.matthewn4444.ebml.subtitles.SSASubtitles import com.sun.jna.NativeLibrary -import com.sun.jna.Platform.isLinux import data.Caption import org.mozilla.universalchardet.UniversalDetector import state.getResourcesFile @@ -302,8 +301,8 @@ fun parseSubtitles(subtitlesPath: String):List{ content = removeItalicSymbol(content) content = replaceNewLine(content) val newCaption = PlayerCaption( - start = parseTime2(caption.start.getTime("hh:mm:ss.ms")), - end = parseTime2(caption.end.getTime("hh:mm:ss.ms")), + start = convertTimeToMilliseconds(caption.start.getTime("hh:mm:ss.ms")), + end = convertTimeToMilliseconds(caption.end.getTime("hh:mm:ss.ms")), content = content ) if (caption.content.length > maxLength) { diff --git a/src/jvmMain/kotlin/player/Play.kt b/src/jvmMain/kotlin/player/Play.kt index 3577692..fe51615 100644 --- a/src/jvmMain/kotlin/player/Play.kt +++ b/src/jvmMain/kotlin/player/Play.kt @@ -12,8 +12,6 @@ import uk.co.caprica.vlcj.player.component.CallbackMediaPlayerComponent import uk.co.caprica.vlcj.player.component.EmbeddedMediaPlayerComponent import java.awt.* import java.awt.event.* -import java.time.LocalTime -import java.time.format.DateTimeFormatter import javax.swing.JFrame import javax.swing.JPanel @@ -424,21 +422,27 @@ fun play( * 转换时间为秒 */ fun convertTimeToSeconds(time:String):Double{ - var duration = LocalTime.parse(time, DateTimeFormatter.ofPattern("HH:mm:ss.SSS")).toNanoOfDay().toDouble() - duration = duration.div(1000_000_000) - return duration + val parts = time.split(":") + val hours = parts[0].toLong() + val minutes = parts[1].toLong() + val seconds = parts[2].toDouble() + + val totalSeconds = hours * 3600 + minutes * 60 + seconds + return totalSeconds } /** - * 解析时间,返回毫秒 + * 转换时间为毫秒 */ -fun parseTime2(time:String):Long{ - val millis = time.substringAfter(".").toLong() - val list = time.substringBefore(".").split(":") - val hours = list[0].toLong() - val minutes = list[1].toLong() - val second = list[2].toLong() - return (hours * 3600 + minutes * 60 + second) * 1000 + millis +fun convertTimeToMilliseconds(time:String):Long{ + val parts = time.split(":") + val hours = parts[0].toLong() + val minutes = parts[1].toLong() + val seconds = parts[2].substringBefore(".").toLong() + val milliseconds = parts[2].substringAfter(".").toLong() + + val totalMilliseconds = ((hours * 3600 + minutes * 60 + seconds) * 1000) + milliseconds + return totalMilliseconds }