This SDK enables seamless integration with AndroidX Media3 ExoPlayer, offering advanced video analytics via the FastPix Dashboard. It's a wrapper built on FastPix’s core Kotlin library to deliver performance monitoring for video applications using Google's ExoPlayer via AndroidX Media3.
- User engagement tracking – Monitor viewer interactions in real-time.
- Playback quality analytics – Evaluate buffering, resolution changes, and network issues.
- Custom event tracking – Track domain-specific user behaviors.
- Device & app diagnostics – Gain insights into playback issues across devices.
- Error logging – Automatically capture fatal and handled playback errors.
- Beacon domain support – Send analytics to a custom tracking domain.
- Android Studio: Ladybug | 2024年2月1日 or later
- Minimum SDK: 24 (Android 7.0)
- Target SDK: 35 (Android 15)
- Compile SDK: 36
- Kotlin: 2.2.10+
- Java: 11
- Gradle: 8.9+
repositories {
maven {
url = uri("https://maven.pkg.github.com/FastPix/android-data-media3-player-sdk")
credentials {
username = "<your-github-username>"
password = "<your-personal-access-token>"
}
}
}dependencies {
implementation 'io.fastpix.data:media3:1.2.3'
}class VideoPlayerActivity : AppCompatActivity() { private lateinit var binding: ActivityVideoPlayerBinding private lateinit var exoPlayer: ExoPlayer private lateinit var fastPixDataSDK: FastPixBaseMedia3Player override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityVideoPlayerBinding.inflate(layoutInflater) setContentView(binding.root) setupPlayer() setupAnalytics() } private fun setupPlayer() { exoPlayer = ExoPlayer.Builder(this).build() binding.playerView.player = exoPlayer val mediaItem = MediaItem.fromUri("YOUR_VIDEO_URL") exoPlayer.setMediaItem(mediaItem) exoPlayer.prepare() } private fun setupAnalytics() { // Optional val videoDataDetails = VideoDataDetails( videoId = UUID.randomUUID().toString(), videoTitle = "My Video" ).apply { videoSeries = "Demo Series" videoProducer = "Demo Producer" videoContentType = "VOD" // ..etc } // Optional val playerDataDetails = PlayerDataDetails( playerName = "media3", playerVersion = "latest-version" ) // Optional val customDataDetails = CustomDataDetails().apply { customField1 = "Custom Value 1" customField2 = "Custom Value 2" // ..etc } fastPixDataSDK = FastPixBaseMedia3Player( context = this, playerView = binding.playerView, exoPlayer = exoPlayer, workSpaceId = "workspace-key", playerDataDetails = playerDataDetails, videoDataDetails = videoDataDetails, customDataDetails = customDataDetails ) } override fun onDestroy() { super.onDestroy() exoPlayer.release() fastPixDataSDK.release() } }
Copyright © 2025 FastPix. All rights reserved.
This project is proprietary software. The FastPix SDK components are proprietary and require appropriate licensing. See individual module README files for specific license information.
For questions, issues, or feature requests:
- Email: support@fastpix.io
- Documentation: FastPix Documentation
- SDK Issues: GitHub Issues
- Android Data Core SDK README
- FastPix Documentation
- AndroidX Media3 Documentation
- ExoPlayer Developer Guide
Built with ❤️ using AndroidX Media3 and FastPix Analytics