Skip to content

Commit c86a321

Browse files
committed
added Video Player
1 parent 32b1f17 commit c86a321

5 files changed

Lines changed: 51 additions & 13 deletions

File tree

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44
}
55

66
group = "de.shadowdara.videoconverter"
7-
version = "0.1.3-SNAPSHOT"
7+
version = "0.1.4-SNAPSHOT"
88

99
repositories {
1010
mavenCentral()

src/main/kotlin/de/shadowdara/videoconverter/Config.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,16 @@ class Config(private val version: String, val filePath: String) {
4747
return this.config.ffmpeg
4848
}
4949

50+
fun get_ffplay(): String {
51+
return this.config.ffplay
52+
}
53+
5054
init {
5155
config = ConfigData(
5256
version = this.version,
5357
edittime = "",
5458
ffmpeg = "ffmpeg",
59+
ffplay = "ffplay",
5560
profiles = listOf(
5661
// 🎥 Standardqualität, gut für die meisten Zwecke
5762
Profile("Normal",

src/main/kotlin/de/shadowdara/videoconverter/Convert.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,20 @@ fun convert(profile: String, exportFolder: String, files: List<String>, config:
4040

4141
println("Finished Conversion for all Files!")
4242
}
43+
44+
// function to play a video with ffplay
45+
fun play_video(config: Config, file: String) {
46+
val ffplay = config.get_ffplay()
47+
48+
println("Playing Video: $file")
49+
50+
val (exitCode, output) = if (isWindows()) {
51+
runCommand("cmd", "/c", ffplay, file)
52+
53+
} else {
54+
runCommand(ffplay, file)
55+
}
56+
57+
println("Exit code: $exitCode")
58+
println("Output:\n$output")
59+
}

src/main/kotlin/de/shadowdara/videoconverter/Data.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ data class ConfigData(
77
var version: String,
88
var edittime: String,
99
var ffmpeg: String,
10+
var ffplay: String,
1011
var profiles: List<Profile>
1112
)
1213

src/main/kotlin/de/shadowdara/videoconverter/UI.kt

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,11 @@ package de.shadowdara.videoconverter
22

33
import de.shadowdara.daras_library.io.BrowserOpener.openFileInBrowser
44
import de.shadowdara.daras_library.io.getCallerJarDirectory
5-
import de.shadowdara.daras_library.io.getJarDirectory
65
import java.awt.BorderLayout
76
import java.awt.Component
87
import java.awt.Dimension
98
import java.io.File
10-
import javax.swing.BorderFactory
11-
import javax.swing.Box
12-
import javax.swing.BoxLayout
13-
import javax.swing.JButton
14-
import javax.swing.JComboBox
15-
import javax.swing.JFileChooser
16-
import javax.swing.JFrame
17-
import javax.swing.JLabel
18-
import javax.swing.JOptionPane
19-
import javax.swing.JPanel
9+
import javax.swing.*
2010
import javax.swing.filechooser.FileNameExtensionFilter
2111
import javax.swing.filechooser.FileSystemView
2212

@@ -37,6 +27,30 @@ fun createUI(profileNames: Array<String>, config: Config) {
3727
var selectedFiles: List<String> = emptyList()
3828
var selectedExportFolder: String = ""
3929

30+
val playButton = JButton("Play Video")
31+
playButton.alignmentX = Component.LEFT_ALIGNMENT
32+
33+
playButton.addActionListener {
34+
val chooser = JFileChooser()
35+
val filter = FileNameExtensionFilter(
36+
"Video Files", "mov", "mp4", "mkv"
37+
)
38+
chooser.setFileFilter(filter)
39+
val rueckgabeWert = chooser.showOpenDialog(frame)
40+
41+
if (rueckgabeWert == JFileChooser.APPROVE_OPTION) {
42+
val ausgewaehlteDatei = chooser.selectedFile
43+
/*
44+
JOptionPane.showMessageDialog(
45+
frame,
46+
"Selected File: " + ausgewaehlteDatei.absolutePath
47+
)
48+
*/
49+
50+
play_video(config, ausgewaehlteDatei.absolutePath)
51+
}
52+
}
53+
4054
// Info Button
4155
val openInfoButton = JButton("Open Profile Info")
4256
openInfoButton.alignmentX = Component.LEFT_ALIGNMENT
@@ -97,7 +111,7 @@ fun createUI(profileNames: Array<String>, config: Config) {
97111
val chooser = JFileChooser()
98112
chooser.fileSelectionMode = JFileChooser.FILES_ONLY
99113
chooser.isMultiSelectionEnabled = true
100-
val filter = FileNameExtensionFilter("Video files (MP4)", "mp4")
114+
val filter = FileNameExtensionFilter("Video files", "mp4", "mkv", "mov")
101115
chooser.fileFilter = filter
102116

103117
val result = chooser.showOpenDialog(frame)
@@ -177,6 +191,7 @@ fun createUI(profileNames: Array<String>, config: Config) {
177191

178192
// UI zusammenbauen
179193
mainPanel.add(title)
194+
mainPanel.add(playButton)
180195
mainPanel.add(openInfoButton)
181196
mainPanel.add(chooseFileButton)
182197
mainPanel.add(chosenFilesLabel)

0 commit comments

Comments
 (0)