Skip to content

Instantly share code, notes, and snippets.

View fatihkurcenli's full-sized avatar
👨‍💻
Art of Coding

Fatih Kurçenli fatihkurcenli

👨‍💻
Art of Coding
View GitHub Profile
@fatihkurcenli
fatihkurcenli / MainActivity.kt
Created February 11, 2022 14:25
MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var exoPlayer: SimpleExoPlayer
private lateinit var dataSourceFactory: DataSource.Factory
private lateinit var trackSelector: DefaultTrackSelector
private lateinit var playerView: PlayerView
private lateinit var exoQuality: ImageButton
private var currentWindow = 0
private var playbackPosition: Long = 0
private var isFullscreen = false
private var isPlayerPlaying = true
@fatihkurcenli
fatihkurcenli / exo_player_custom.xml
Created February 11, 2022 13:51
exo_player_custom.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="#CC706B6B"
android:layoutDirection="ltr"
android:orientation="vertical">
@fatihkurcenli
fatihkurcenli / MainActivity.xml
Last active February 11, 2022 13:49
MainActivity.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<FrameLayout
android:id="@+id/frameLayout"
@fatihkurcenli
fatihkurcenli / RefactorVideoClass.kt
Last active February 7, 2022 13:31
RefactorVideoClass.kt
class RefactorVideoClass() : Thread() {
private lateinit var videoName: String
private lateinit var segmentedName: String
private var parseDynamicVideoRange: Int = 10
constructor(videoName: String, segmentedName: String?, parseDynamicVideoRange: Int?) : this() {
this.videoName = videoName
segmentedName?.let {
this.segmentedName = it
} ?: videoName.split(".").toString()
@fatihkurcenli
fatihkurcenli / FileUploadService.kt
Created February 7, 2022 12:26
FileUploadService
@Service
@Component
class FileUploadService {
fun uploadFileLocal(file: MultipartFile): Boolean {
return file.contentType?.let {
if (it.contains("mp4")) {
file.transferTo(File("C:\\xampp\\htdocs\\hls-server\\input\\" + file.originalFilename))
val refactorVideoClass = RefactorVideoClass(file.originalFilename)
refactorVideoClass.start()
@fatihkurcenli
fatihkurcenli / VideoController.kt
Last active February 7, 2022 12:10
VideoController
@RestController
@RequestMapping("/api/v1/videos")
class VideoController {
@Autowired
private lateinit var fileUploadService: FileUploadService
@PostMapping()
@ResponseStatus(HttpStatus.OK)
fun uploadVideo(@RequestParam("file") file: MultipartFile): SuccessErrorModel {
@fatihkurcenli
fatihkurcenli / socket_main_activity.kt
Created November 11, 2021 13:36
socket_main_activity.kt
class MainActivity : AppCompatActivity() {
private var _binding: ActivityMainBinding? = null
private val binding get() = _binding!!
private lateinit var webSocketClient: WebSocketClient
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
@fatihkurcenli
fatihkurcenli / acitivity_main_socket.xml
Created November 11, 2021 13:09
acitivity_main_socket.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/hello_world_text"
@fatihkurcenli
fatihkurcenli / onRequestPermissionsResult.java
Created September 2, 2021 13:46
onRequestPermissionsResult.java
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == CAMERA_PERMISSION_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
binding.btnCamera.setText("Permission granted");
Toast.makeText(this, "Camera Permissions Granted", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Camera Permissions Denied", Toast.LENGTH_SHORT).show();
}
@fatihkurcenli
fatihkurcenli / checkPermissions.java
Created September 2, 2021 12:57
checkPermissions.java
//fonksiyonumuzu global yaparak permission code sorarak izin olup olmadigini diger
//siniflardan kontrol edebiliriz.
public void checkPermissions(String permission, int requestCode) {
//Checking if permission granted or not
if (ContextCompat.checkSelfPermission(this, permission) == PackageManager.PERMISSION_DENIED) {
//Take permissions
ActivityCompat.requestPermissions(MainActivity.this, new String[]{permission}, requestCode);
} else {
Toast.makeText(this, "Permission already denied", Toast.LENGTH_SHORT).show();
}