KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am experiencing an odd issue with a video streaming application I am working on. The actual streaming of video/audio is working fine on all of my test devices. However, on seemingly any device 4.0+, when using an RTSP URL, prepare() returns instantly (this causes an issue providing proper feedback to the users while a video is loading and interferes with a few other systems I have in place). Below is the block of code where I initialize and setup my MediaPlayer, but keep a few things in mind: My initPlayer method is called from an AsyncTask. The video does eventually play correctly, but prepare returning instantly creates a lack of feedback to the user during a video load. No errors of any kind occur during the entire process start() is called on the MediaPlayer via the onPrepared method in my OnPreparedListener, which obviously becomes an issue when prepare() returns before it is actually ready to be played. HTTP streams seem to work fine, and on every test device below 4.0 the issue does not occur. I have been trying to fix this for a ridiculous amount of time, and haven't been able to find anyone else who has ran into this problem. Any ideas would be greatly appreciated. public void initPlayer() { //We first need to make sure the MediaPlayer isn't null if(mMediaPlayer==null){ mMediaPlayer = new MediaPlayer(); mMediaPlayer.setOnPreparedListener(mediaPlayerPreparedListener); mMediaPlayer.setOnCompletionListener(mediaPlayerCompletionListener); mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); } //If a video/stream has been chosen while another is already playing else if(mMediaPlayer.isPlaying()){ mMediaPlayer.reset(); } //Video is not in full screen mode second = false; try { mMediaPlayer.setDataSource(videoString);
Tags (comma-separated)
Save Edits
Cancel