I'm and android beginner, so go easy on me. I'm trying to play a sequence of video files which I'm downloading from a server. The challenge is that I want to have a smooth transition from one file to another.
My thought is to have two MediaPlayer instances each preparing and then playing in turn. It is not clear to me if they can both share the same SurfaceView? Or maybe, I should be using different views and swapping between them? Or, the idea is a bad idea all together?
When I try to run configure the MediaPlayer instance with a view that isn't visible it seems to crash my emulator.
I have a requirement to play several sounds many times in my game so instead of creating the MediaPlayer again and again I have called mp.seekTo(0) in onCompletion(mp) so that it will restart. Sometimes the sound is not audible from the device when I call mp.start () after setting mp.seekTo(0); but the player calls onCompletion() without playing any sound, this is observed randomly on most of the sounds
My sounds are of short duration mostly less than a second.
I am using a separate MediaPlayer for each sound (as I need this) -
There are almost 28 sounds in my game so i will be creating 28 MediaPlayers.
Below is the attached code for player
Also If I try to play many sounds one after the other in a short period of time i get an error saying "no more track names available". can u tell Why this is happening...?
In 1.6 I do the following to stream an mp3 shoutcast stream:
This works great. However, I have to support phones running 1.5 as well. When I build against the 1.5 libraries and run in a level 3 emulator, I get an exception on the prepare() call with the message: Prepare failed.: status=0x1.
Is this supported in 1.5. Is there some other mechanism I have to use that will work in both?
When my sound played for the first time, it's all fine. But when for second, third, etc.. it sounds like cutted, just little part of my "click.wav". If I put there sound in another format like mp3 or ogg - all just fine.
Or if I write like this: mp_click = MediaPlayer.create(CubeTest_Main.Context, R.raw.click); mp_click.start(); All if fine too, but this is a bit slow, becouse this sound is playing very often.
I have a program with a function copied below it plays a sound upon clicking a button. If you click the button 10 times 10 different media players play the same sound that is the way i want it but how can i assign a button to stop all 10 media players at a time like a "STOP ALL BUTTON"
The code above only stops the last instance of mp.
I created a sqlite database to store playlists for a media player I am developing because of extended feature (rather than using the Content Provider). It works perfectly on the 1.6 emulator but FCs on anything higher than 2.0... what has changed that I need to know about as far as opening databases in SDK 2.0+? Here is the logcat.
Here is the dbhelper class
why can't stackoverflow just use tags like a normal syntax highlighter.
And several other attempts to call "link" that also fail (sshfs does not support hard links).
Is it possible to change the emulator's behavior to create lock files somewhere in /tmp (using some hash of image path as lock file name)? I am OK to try this myself: which repositories from https://android.git.kernel.org/ are necessary to rebuild the emulator alone, and where in the sources is the code responsible for image locks?
I am developing a media player application which downloads from internet and plays. so while downloading I want to show a progress bar saying "buffering...", and while playing I want to dismiss the same progress bar. I can display the progress bar while downloading (by implementing the listener onBufferedUpdateListener), how can I get the event for player while it is playing.
eg: in the list.java there have two mp3 files : 1.mp3,2.mp3 when first time choose 1.mp3, then play ok, then back to list.java from play.java, and now the 1.mp3 is still playing, and then i click 2.mp3 in the list.java, and go to play.java, but it play 1.mp3 and 2.mp3 simultaneously? but i have used the mediaplayer.stop(); mediaplayer.release(); and it always play 1.mp3 and 2.mp3 simultaneously? i want stop 1.mp3 and play 2.mp3.
I am developing a media player which will download the media content from network (Shoutcast) It works fine. Problem is a small gap between players (2 players) I am using two mediaplayers to play the data while a thread downloads and stores the data and stores in to 100Kb files continuously. on first players oncompletelistener() i started the second player wise versa. I think there is a problem with mp3 frames(header sync byte) while splitting 100kb files. how to resole the gap between players.
I know this question has been asked previously because I have read the other postings over a hundred times but yet I cannot come up with an answer on how to use keep a MediaPlayer object playing over an orientation change. I've read that you can use onRetainNonConfigurationInstance() to pass an object to your future self when the activity is destroyed/recreated, but I can't keep a video playing in this circumstances. Does anybody have an example or an advice/guide on how to do this? or rather what do I pass on onRetainNonConfigurationInstance() to keep the video playing after an orientation change?
I have run mediaplayer in SDK which can play media in res/raw folder successfully on emulator , but now I wanted to run it on my hardware which have already successfully implemented the android kernal and file system and audio, video drivers etc. I have no experience to implement JAVA app . I once implemented mplayer app written in C to my linux OS which only need to copy the final executable file , but now I don't know which files or folder should I copy to my platform because I have no basic knowledge of Java although I have run successfully on my emulator.
I try to recived rtsp or mms audio stream for a long time, simply use the code to recive audio stream: myPlayer1.setDataSource("mms://....");myPlayer1.prepare(); myPlayer1.start(); I search for this topic for all discussions, and get some conclusions from all discussions: (a) sdk 1.1 not support for stream but sdk 1.5 could. (b) someone says stream can't work on the emulator because the firewall issue.But in fact,my computer without firewall,and i also try in the htc G1 mobile but still can't work!(sdk 1.1) (c)almost everyone got the same error from "prepare()" function.the error message from "adb logcat" Can someone or android engineer give some tips? because i search for this topic long time,and no answer, no one can success.
I'm trying to write a light-weight HTTP server in my app to feed dynamically generated MP3 data to the built-in Android MediaPlayer. I am not permitted to store my content on the SD card. My input data is essentially of an infinite length. I tell MediaPlayer that its data source should basically be something like "http://localhost/myfile.mp3". I've a simple server set up that waits for MediaPlayer to make this request. However, MediaPlayer isn't very cooperative. At first, it makes an HTTP GET and tries to grab the whole file. It times out if we try and simply dump data into the socket so we tried using the HTTP Range header to write data in chunks. MediaPlayer doesn't like this and doesn't keep requesting the subsequent chunks.
Has anyone had any success streaming data directly into MediaPlayer? Do I need to implement an RTSP or Shoutcast server instead? Am I simply missing a critical HTTP header? What strategy should I use here?.................
SDK level 8 (Froyo) has introduced the native capability for the MediaPlayer to connect to a streaming source, like Shoutcast. Previous SDK versions were able to do workarounds, such as run a local proxy on the device (see NPR). I took the same approach as NPR and am using a StreamProxy. However, NPR first checks if the currently running SDK is less than 8. If so, it uses the proxy. Otherwise, it connects directly. My StreamProxy requests metadata from the Shoutcast server, so it does not simply route the data from Shoutcast to my client. Instead, it parses out metadata and uses it accordingly, and only routes the music data.
When trying to use the StreamProxy at SDK level 8 or above, the MediaPlayer fails to prepare. My StreamProxy receives the connection and accepts it, but after successfully writing out the status line and headers to the client, the next write produces "java.net.SocketException: Connection reset by peer". This results in the client's mediaplayer throwing an "Error(1,-1007)". I am trying to figure out why the MediaPlayer is unable to connect to my local proxy. It should be the same as connecting to the original source without the metadata, which does work. I am forwarding on all headers from the external source, through my proxy, which includes content-type.
I have an app that streams mp3's from a server, works fine on 1.5 and lower. But on the droid, for certain songs the mediaplayer buffers to like over 50% but onPrepared() is never called. These same songs work fine on 1.5 or on a 2.0 emulator but for some reason they just hang on the actual droid phone. No mediaplayer errors are thrown but if i call stop or reset it while it is hanging like this, it throws this,
12-18 19:14:05.230: ERROR/MediaPlayer(15718): stop called in state 4 12-18 19:14:05.230: ERROR/MediaPlayer(15718): error (-38, 0) 12-18 19:14:05.238: ERROR/PlayerDriver(987): Command (6) was cancelled
it is only for certain files (yes they are all mp3s) and only on the droid. Anyone have any ideas why these songs would hang? I already checked the http headers and they are correct.
Looking for some guidance on MediaPlayer issues on Android 2.2. I've confirmed that the below code works on Android 1.5 (an ADP1). I'm playing back an MP3 file using a MediaPlayer instance and using a ProgressBar to track the progress. The method that updates the progress bar is invoked from a Handler every second. On the ADP1 this results in a correct update rate (the countdown timer moves about a second every second) and steady progress on the ProgressBar. However, the exact same code deployed on the Nexus 1 results in about a half second update in the count down timer every second.
The code that updates the ProgressBar and captures the timer information is
I modified the code to log the method invocation, and it appears that the method is accurately called every second, but the calls to getCurrentPosition do NOT appear to work correctly. I noticed that there is an open issue, http://code.google.com/p/android/issues/detail?id=2559, talking about incorrect getCurrentPosition results: could this be what I'm seeing?
I am using MediaPlayer to build a Video player for playing local video files. However, I don't know how to enable MediaController for my player. I want the media control buttons that pop up when you touch the video surface.