Android :: Play Continuous Background Music Using Sound Pool
Nov 25, 2009
I am trying to play continuous background music using sound pool.
Here is my code:
when i do playSound() with 1, 2, 3 sound [wav file] with looping false, they play fine. but if i call playSound any of the 4 files with looping true, it does not work. 4th one is an mp3 file which neither plays with looping true nor looping false. can i create another mediaplayer object as a member variable and use it for only background music ?
Are you using the stock player? I'm not so happy with it. My biggest problem is that it doesn't sense when there should be continuous play between tracks, so you hear the breaks. Has anybody found something better?
I have been finishing off the port of one of my games to Android, with the last two things being music and sound effects. I have implemented the music system now, using a series of MediaPlayer instances, and that all seems to be working fine (I only need to do limited things with music, just playing, pausing and stopping really). I am now trying to finish of the sound effects, but I am struggling.
1. I am targeting Android 1.6+ and therefore do not have access to the setOnLoadCompleteListener function. What is my best way to wait until all sound effects are loaded? I am thinking my best bet is to load all my sounds, then load a dummy (short, silent) sound, and then sit in a loop attempting to play that sound (and then sleeping for 1ms) until the play returns non zero. Does this sound reasonable? Would it be crazy to do this process for every sound effect I load, as the calling code expects the load function to stall as long as it takes for the load to complete - I am not interested in the sound pool trying to do any async stuff for me, all of my background loading is done in a separate thread, and this thread can stall as long as it likes, as long as it actually loads what I am asking it to.
2. Is there anyway I can find out when a sound effect has finished playing? The games I am porting might have code along the lines of 'play sound effect, wait for it to complete, then fade the screen out and load next context' which on other platforms is easy enough to implement. In OpenAL for example, at the end of each frame I check if the OpenAL state for a given SFX is now stopped, in which case I update the game side sound handle to let it know it's now in the stopped state. But I just can't seem to find a way to achieve the same thing on Android. I am beginning to think my only option would be to (somehow) work out the length of the sample, and then when play is called, set a timer to trigger 100ms after the sample time (100ms to account for any delay in the sound starting), and in the timer function set the game side sfx state to be stopped. Does this sound reasonable? Are there any better ways of handling this?
3. Will a sound pool run out of ids? It seems it have been designed so you have one sound pool per 'level' and after each level you release the pool. This doesn't really fit too well with all my code so I am trying to avoid it. But I notice the documentation states a lot of functions will work even after a sound id is no longer valid (it has stopped for example), the functions won't do anything, but they want break anything. This to me says that id's are never recycled. So are there limits? If so what are the limits?
4. Finally, are there any plans for improving the sound pool system? Ideally I'd like to see it work in a similar way to the other main sound APIs. The reason being I target multiple platforms on the engine side, and have 100% generic game code, so I need to establish a base level interface to the API which will work across the board. This is made very difficult by the SoundPool API being set up to work in a specific way, as opposed to just having reasonable low level functions, and allowing the end user to wrap this up how they see fit. I like the fact there are high level classes around to handle this work of work, and I agree these should remain, but I'd like to see something perhaps lower level exposed, which the SoundPool could wrap around perhaps.
I was wondering can you download and play the online game Pool Pro Online 2 for a smartphone like an Android device? I have it on my Dare and when I switch to a Android phone, I want to still be able to play it online.
I am trying to set the background dynamically as I play music. 1) I am able to set the background using the setBackground (Color.GREEN) method. 2) Then I play a MP3 file (audio) using the MediaPlayer. 3) when I call myPlayer().isPlaying(), I would like to keep changing the background color continuously till the music stops.
I have a friend at work who has a cheapie smartphone running vanilla Android and whenever he has his phone playing on the dock his lockscreen displays the audio levels behind the password prompt.
Audiophiles, I don't know the correct term for it, but it's all those little lines that go up for each frequency range. The treble side is on the left, bass is on the right.The background is black, the levels thing is a light blue-ish color.
I know he uses Play Music and he has a Pattern Lock, but so far I haven't been able to replicate it on my phone.My phone is a Galaxy S4 with 4.4.2 and the latest Play Music, swipe unlock, and a static picture as the background.I see no options for the levels thing in Play Music nor in my lockscreen settings.Is this something only in vanilla Android that Samsung tossed out?I think it looks really cool; better than the square album artwork awkwardly cropped to fit a rectangular screen.
If this is something vanilla only, are there any good free equivalents in the Play Store you'd recommend?How about compatibility with Rocket Player?
i've updated to the last Google play music, but now even if i don't use it i've a background service of this app .. is there a way to avoid this background service when not using it ? Even if i didn't launch it of the whole day i have this service ..
So i didn't put any unofficial software,in other words,everything is as it came out of the store (except lots of apps ofc. the problem is that i doesn't play any sound when i want to play music,or with some app (without headphones,when i have them then it's normal) but when someone calls me or i set an alarm then it plays perfectly normal so i'm confused...it's obvious that speaker is not broken.
Then today suddenly i can't hear anything when i'm in a call,and the person from the other side also doesn't hear me,i also don't know why is that...i'm not an expert for this kinda things and actually i'm quite knew in this world.
Recently I've been having an issue with Google Play Music where when I play a song, it plays for a second then pauses, so I have to press play to get it going again. This occurs repetitively which means I can't listen to music.
It happens on songs that are being streamed and on songs that are on the device.
Funnily enough, if the song is played through ES file explorer and the little play music popup window comes up, it plays fine.
I've got this issue on both my devices, a tf101 running 4.3 and a nexus 5 with stock 4.4 rooted.
Edit: just remembered, I've also got this issue with MX Player and videos. I can't figure out what's wrong.
Streamed videos played through the gallery video player work fine.
I was just wondering if the Droid can handle voice commands such as "Play Music", "Party Shuffle", "Play (Artist)", "Play (Song)", "Play (Album)", "Open Email", "Play (Video)", etc, etc; or if there are plans for this in the future firmware? I personally could make use of this, especially "Play (Artist)". I tried to make it play a song and it called my grandma ):
Also, can anyone tell me the difference between voice search and voice dialer? It seems like when I use voice dialer, I say "Call Home" and a list of options pops up of who to call (one choice being Home) (When I wish it would have just automatically called Home), but if I use voice search it automatically does call Home.
when I want to stream one particular song I noticed that the Google Play Music app downloads and caches the previous/next few songs for quicker access. How can I prevent this? It uses a lot of data and I usually only want to listen to the one song I chose to stream.
For example if I play a 6 mb song i noticed it uses about 40 mb to stream just that one song. Then I selected a different song to stream and immediately went into settings > download queue and noticed it was loading more songs than the one I requested. I only want to listen to the 1 song I chose, so how can I prevent the other songs from loading? As far as I can see there is no way in the app's settings but there has to be another way to stop this inconvenience.
P.S. I have a T999 galaxy s3 running on stock rooted ICS
I currently have an iPhone 4S and I am probably going to get a Galaxy Note 2 when it comes out for Verizon. In order to prepare for this, I set up Google Play Music to upload my music so it can be ready for me when I get my new phone (I like it better than Samsung's default music player). Only one problem: protected AAC files (or DRM) can't be transferred to Play Music. I tried converting my music with 2 different DRM converters, but they were free trials, and it only would convert 1:00 of each song and then stop. Is there any free way to convert each protected song completely, along with protected videos? Also, does music on Play Music eat up an Android device's space? I have over 12 GB of music and movies and I don't want to have barely any any space left on a 16 GB device if a 32 or 64 GB ever comes out, minus the SD card.
I have music that is playable with Google Play Music player, but not with other players. I have chosen for the music to be "on the device", and it plays when even in Airplane Mode, so I know it is not streaming, but the music files do not show up in my "Music" directory tree, or under any other file trees that I can find. I have used ES File Explorer to do a top down search for some of the missing titles, but it doesn't find them. I'm perplexed. There must be a cache somewhere, but I can't find it.
Trying to find a way how to move music from google play to the stock music player. It has better sound quality, in my opinion, than google play itself. Any way to get music from google play to the music player app that comes with Android Ics.
I have a Nexus 4 with a considerable amount of "pinned" music in the Play Music app taking up storage space. This pinning seems to have taken on a life of its own, and I'm finding that the app is permanently storing music locally that I never wanted downloaded.
So my question is this: what's the best way to completely clear everything that's been "pinned" so far, and start over? I knew how to unpin music in the app before the recent design refresh, but now I'm not seeing it anywhere. Is there a way to just unpin everything through the app? Or can I use a file manager or connect the device to a PC and just delete the music files?
I use Google Play Music. Over time, I've chosen certain albums to store locally ('pin') from music.google.com on my Android 2.4 phone. Now I wish to clear these out from the phone in the name of space and begin anew.
Without an apparent way to do this on the phone (?), I connected the device to a computer and wiped out the Android music directory's files manually.
Then, when I returned to my phone's Play Music app and attempted to choose new music to pin to the device, Android is re-downloading *all* of the music I had previously chosen to store locally, completely defeating the purpose of this pursuit.
Is there a way to start fresh on the phone without deleting music from URL....? I simply want to download a select few albums to a device from my Play Music account, not everything I have ever selected to pin since my history with the service.
I recently started using the Google Play Music free service, so I uploaded my complete music collection with the Music Manager software, everything is cool but I noticed that some of the album art looks kinda bad on my Nexus 7 (I guess is because the resolution). So my question is, if I were to change a tag of a song on my PC, will it be automatic updated to my google play account?
How can I make my simple site, on which the user can choose to play a number of music clips by clicking on little "play" buttons on the page (think of Amazon's "preview" on their product pages for CDs), work on mobile devices?
[I originally created the page thinking only of desktop browsers, so currently it works by using Flash. I know that won't work at least on the iphone.]
Will I have to build a platform-specific app for all major mobile platforms to provide this kind of simple interface? If so, can you recommend a framework that will let me do this in "write once, run everywhere" fashion?
Im making an app, and i want it to make a sound when a activity is opened , the sound file is in R.raw.sound_file , if someone could do some example code to make my app play a sound that would be great.
I can get my music onto my phone and use them as ringtones, alarm tones and message tones but when i managed to do this they won't play in the music player, it says "no music found" but when i change my music to a different folder to get it to play in the music application. I then cant use them as my ringtones, message tones etc.
I love my Eris BUT it is inferior in one critical area (too me) - I like to use my player t"watch" VIDEO podcasts or tivo'd news shows. Much of the time, I do not need to actually see the video (just want to hear it). So is their a video app that will let me play the video and turn the screen off and/or play video while I use the device to do other tasks. Seems like a simple feature but I cant find it anywhere for the Android.