An Android app (Kotlin) where users sign up / sign in with Firebase Authentication and then pick one of four videos to play: two streamed over RTSP from a public demo server and two bundled with the app. There is no backend or REST API in this repository.
- Sign up with email, password and password confirmation (Firebase
createUserWithEmailAndPassword), with empty-field and password-match checks. - Sign in with email and password; users who are already signed in skip straight to the main screen.
- Main screen with four video buttons and a LogOut button (Firebase
signOut). - Video screens (
VIDEO1–VIDEO4) using AndroidVideoView+MediaController, with a loading spinner until rendering starts and the playback position kept across pause/resume:VIDEO1,VIDEO3: streamrtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mp4(a public Wowza demo stream; availability depends on that server).VIDEO2,VIDEO4: play the bundledres/raw/video2.mp4.
- Kotlin, Android SDK (compileSdk/targetSdk 32, minSdk 26)
- Firebase Authentication (
firebase-auth-ktx) - AndroidX AppCompat, Material Components, ConstraintLayout, View Binding, Kotlin Android Extensions (synthetic views)
- Android
VideoView/MediaController(RTSP and local playback)
app/
├── build.gradle
├── google-services.json # Firebase config
└── src/main/
├── AndroidManifest.xml
├── java/com/example/titans/
│ ├── SignInActivity.kt, SignUpActivity.kt
│ ├── MainActivity.kt # video menu + logout
│ └── VIDEO1.kt … VIDEO4.kt # video player screens
└── res/
├── layout/ # one layout per activity
└── raw/ # goat.mp4, momken.mp4, video.mp4, video2.mp4
Only video2.mp4 is referenced in code; the other three files in res/raw/ (about 87 MB together) are not used.
- Open the project in Android Studio.
- Create your own Firebase project, enable Email/Password sign-in, register the app id
com.example.titans, and replaceapp/google-services.jsonwith your own file. - Build and run on a device or emulator with internet access (needed for sign-in and the RTSP videos).
Developed by Khaled Walid