First of all, for fix one of my problems (yes, code!) scroll to bottom!
Okay, coming from an iphone, I really like my Desire, better battery life, easy to install apps, better coverage and what not more. One thing that really stings me is how buggy and ****ed up the music player is. A smartphone should have a good music player, but this one is just ridden. Three of the major annoyances:
1. (FIXED WITH FROYO!)
Genre tags are not read. Even with my perfect tagging, genre tags are not read. iTunes reads them, Zune reads them, iPhone reads them, foobar reads them, the only one screwing up is the android player, so please do not tell me its just because tags aren't stored universal. This is a bug that must be fixed ASAP.
2.
Album Artists are not even read.
Music should be sorted by album artist, rather than artist. I know the fix was in the CyanogenMod one time, but i believe its removed now. You might wonder why this is such a big problem, but now I have albums scattered over THIRTY artists. Its a 4CD rap compilation with lots of ft. blah blah, so instead of
Celph Titled -> The Gatalog: A collection of chaos
It now is
Celph Titled ft. Chinook XL -> The Gatalog: A collection of chaos
Celph Titled ft. Apathy -> The Gatalog: A collection of chaos
etc. etc.
This is another prime bug that must be fixed!
Equalizer is not really important, despite what people say. Focus on these bugs instead!
3.
The 3rd annoyance is having no search function in the music player, but this is somewhat covered by 3rd party apps. It should functionality of the stock player though.
Just had to get that off my chest. Besides the OS and having a good SMS/Call functionality, the the third priority of a smartphone should be the music player, in tie with the browser. It is really really really important.
Peace out
P.S. The Code:
h ttp://code.google.com/p/android/issues/detail?id=3679
and
h ttp://code.google.com/p/android/issues/detail?id=2397 (less relevant)
Here is some of the fixes posted on google code by a guy named rainwoodman:
Further study shows it is more complicated than a few lines of changes.
The definition of MediaStore will be relevant. They are putting all stuff into one
database during scanning.
I wasn't able to find the source code for MediaStore. But I suppose the change would
be in where they build the database and determine 'ArtistID' from ArtistName.
This is where they refer to the database:
h ttp://android.git.kernel.org/?p=platform/packages/apps/Music.git;a=blob;f=src/com/android/music/MediaPlaybackService.java;h=09edf522e7cdd0ecddc2bbe0ced213a6241ce091;hb=HEAD
The column names are declared in MediaStore, imported on line 46. No clue where to
find it. The class is also imported in
h ttp://android.git.kernel.org/?p=platform/packages/providers/MediaProvider.git;a=blob;f=src/com/android/providers/media/MediaProvider.java;h=cbc4f9411e48fd725bd245172e81d55633e370fd;hb=HEAD
Then:
Tracked down to this line:
h ttp://android.git.kernel.org/?p=platform/packages/providers/MediaProvider.git;a=blob;f=src/com/android/providers/media/MediaProvider.java;h=cbc4f9411e48fd725bd245172e81d55633e370fd;hb=HEAD#l1454
Who the hell is calling MediaProvider.insert ?
Then:
(THIS IS THE COMMENT 9 FIX. IT IS USEFUL TO SEE WHAT TO DO, BUT DO NOT IMPLENT IT!)
The problem is on the following line of MediaScanner.java(link in comment 6).
Simply replace these lines
Code:
680 // use album artist if artist is missing
681 if (mArtist == null || mArtist.length() == 0) {
682 mArtist = mAlbumArtist;
683 }
----replace with ----
681 if(mAlbumArtist != null && mAlbumArtist.length() != 0) {
682 mArtist = mAlbumArtist;
683 }
Click to expand...
Click to collapse
will solve the problem.
I do not have the 6GB free space to build and test the changes.
Someone look at this issue; at least merge it to Cyanogen Mod!
then he gets to:
h ttp://android.git.kernel.org/p=platform/packages/providers/MediaProvider.git;a=blob;f=src/com/android/providers/media
/MediaProvider.java;h=cbc4f9411e48fd725bd245172e81d55633e370fd;hb=HEAD
Around line 2410, the same-album heuristic is wrong.
Then he concludes to:
Further traces down to these lines:
Code:
1477 synchronized(albumCache) {
1478 int albumhash = path.substring(0, path.lastIndexOf('/')).hashCode();
1479 String cacheName = s + albumhash;
1480 Long temp = albumCache.get(cacheName);
1481 if (temp == null) {
1482
albumRowId = getKeyIdForName(db, "albums", "album_key", "album",
1483 s, cacheName, path, albumhash, artist, albumCache, uri);
1484 } else {
1485 albumRowId = temp;
1486 }
1487 }
Folder name is definintely not the right rehash key to use. Shall use Album artist & year
& number of tracks & release & cd number here.
His final fix is:
Two modifications towards a full fix:
0. revert the temperory fix on comment 9.
1. put albumartist (default = artist) to values in mediascanner
2. int albumhash = values.getAsString("albumartist") + values.getAsString("year") +
values.getAsString(".......")...... in media provider
Cyanogen already had these implented in 5.8, I do not know if its in Cyanogenmod 6.
Also, check out this post for a full explanation, its on modaco:
h ttp://android.modaco.com/content/htc-desire-desire-modaco-com/310583/music-players-fix-yes-all/
I hope on Froyo this music app will be better and support Lyrics and rating system then sync with iTunes ... Yahoo.....
Yeah, the Android music player is pretty broken, and no third party replacement can provide the essential feature that is a lockscreen widget. The problems you outline are probably the main ones. I also really want lyric support and a more solid album artwork implementation. Lack of in-app music-specific search when I can choose search for music systemwide is just odd. Also (and this is bloody infuriating), there isn't always an option to go up the artist-album-song hierarchy. Overall a really half-baked player.
I really would have thought google would focus on a *solid* media player with integrated search, podcast + audiobook support. The Apple implementation of the music player is pretty damn tight (itunes syncing notwithstanding) - it's something google needs to compete with.
DashingGentleman said:
and no third party replacement can provide the essential feature that is a lockscreen widget
Click to expand...
Click to collapse
Cubed (a.k.a. 3) has a lockscreen widget. It's a fantastic player as well. I know this doesn't solve the problems with the stock player, but you might want to take a look
MrBadgerMilk said:
Cubed (a.k.a. 3) has a lockscreen widget. It's a fantastic player as well. I know this doesn't solve the problems with the stock player, but you might want to take a look
Click to expand...
Click to collapse
Full version of Mixzing media player supports this as well. I do not know about TuneWiki or Meridian media player. and yes, ALL of those players do not support genres nor album artists.
Also, as I mentioned, this fix seems to have been implented in the 4.2.0 Cyanogenmod, but has been taken out ever since (?)
MrBadgerMilk, The_limit thanks a lot! I will definitely check these out (when my phone is back from repair ). I saw that TuneWiki, BeyondPod and a couple of other players I tried didn't have lockscreen controls, so I assumed it wasn't possible with Sense.
i believe lock 2.0 support lock screen MP controls
I hope HTC will fix this themselves in the upcoming FroYo, otherwise can we get an update.zip to fix ourselves. but i really dont wanna root my phone and void my warranty just for the sake of this.
Related
Just installed the updated Bing app. New features include GPS directions including spoken navigation. No charge. No money to AT&T, no app to buy. And it works. Here's the caution.
If you use the Windows Media Player for music or other media, the next time you ask the program to update the library, it will find all 60+ spoken phrases added by Bing for navigation, to your music library.
Hopefully this is a bug that will be fixed in the next version, but for now my music library is full of registry-looking items that play things like "exit", "road name changes to", "merge into traffic", "immediately", and so on. Not much entertainment value here.
bowserb said:
Just installed the updated Bing app. New features include GPS directions including spoken navigation. No charge. No money to AT&T, no app to buy. And it works. Here's the caution.
If you use the Windows Media Player for music or other media, the next time you ask the program to update the library, it will find all 60+ spoken phrases added by Bing for navigation, to your music library.
Hopefully this is a bug that will be fixed in the next version, but for now my music library is full of registry-looking items that play things like "exit", "road name changes to", "merge into traffic", "immediately", and so on. Not much entertainment value here.
Click to expand...
Click to collapse
Yes, that happens a lot, where WMP or the Sense music player index non-music audio files. The best solution I've seen is to find the folder those odd files are in, and use Total Commander or something similar to mark the folders as hidden...they can still be accessed by the app that uses them, but the files shouldn't be indexed by the music player anymore.
I'm running a Desire build on my HTC HD2 (and loving it so far), but I'm looking for some apps that may not exist... or at least I can't find them via the Market or Google.
I'm looking for equivalent apps to programs I use for Windows Mobile:
- Conduits Pocket Player (specifically being able to load a folder of podcasts directly w/o a library, and auto keep bookmarks where I left off. Pocket Player also has a ton of options - basically looking for a loaded Droid player. Oh, also select my location for music library & don't look in any other folder)
- Resco Photo Viewer (ditto on specifying what folder to look into, and the smoothness of having thumbnails of pix)
- Phatnotes for Outlook (haven't yet found out how to synch Notes off Outlook server)
- Phoneweaver (auto audio profile switching - saw a couple freebies on Droid, but have not tested. preferably one that shows current state (day/night/vibrate) on the bar at the top. I'm using HTC profiles, but it only has silent/off/normal, I need at least 1 more for 'night' and the automatic switching part)
- Pocketshield (more powerful lock screen replacement where I can control what is showing and different ways to unlock). I'm not impressed with the lock screen at all & haven't found any place for settings yet.
- TCPMP (play divx movies, flash movies from youtube, etc)
Pretty new to Android and I have a lot of reading to do, but am pretty suprised I didn't find say a real good music player off the bat... and no powerful picture viewer with thumbnails & the like.
I got to download some music & picture players today. None quite what I wanted, but so far:
MortPlayer - allows me to manually load up a directory of music.
Yebisu player - seems ok, need to play more.
JustPictures - I was able to scan my SD card, then manually exclude all the funky stuff it found.
rock player - plays about every single video file ( dont know if it will work on your htc hd2 though, defo worth a shot )
mintvilla said:
rock player - plays about every single video file ( dont know if it will work on your htc hd2 though, defo worth a shot )
Click to expand...
Click to collapse
Just read about it in another thread. Let's see what I can throw at it:
Home Movies (converted from digital camera) .wmv format (early ones for me) - nope.
Newer Home Movies (DivX avi) - looks good
Flv looks good (I think from youtube)
619 meg rip of movie (DivX) - perfect
Looks like I just need to convert some older wmv formatted stuff. Excellent, one to cross off the list!
Funny I just saw a tweet from SBSH - Weaver is coming out on Android tonight!
Getting confused in some of the threads I asked for help on, but am using WidgetLocker for my lockscreen, and Folder Organizer to keep my shortcuts clean.
Im still trying to figure out why when in wp7 zune player, why wont all of the artists appear on the background. im sure if we all put our heads to gether we can come up with a reason. i probably have about 30 albums or some on my phone heres is a list of the artists and albums which have and have not background images when using wp7 Zune. NONE of these have been downloaded from zune( as far as i know) and even direct ripped CD`s didnt always work.
Fail = No artist background
Pass = Artist Background
Artist
30 seconds to mars- This is war = FAIL
Alicia Keys - The Element of freedom = FAIL
Alicia Keys - As I am = FAIL
Beyonce - I am Sasha Fierce (deluxe) = PASS
Maroon 5 - Songs about jane= PASS
Paolo Nutini - Sunny Side Up = FAIL
Paolo Nutini - These Streets = PASS
these are just some examples, if anyone nelse has ANY PASS or FAIL please say here. I found it very interesting to see that 1 paolo nutini album worked and the other didnt!.....strange.......
I know, it's weird.
Many of us have the same problem. Hope Zune will be updated to solve this issue.
Did you try on your Zune (PC) to right click on a specific album and select "Find info concerning this album"? Sometimes it helps.
Also a soft named Zune Social Tagger can help. But it also messes up the tags sometimes (because tags used by Zune are themselves wrong)
Following the probelms I had with background not changing and no album art showing on "now playing" screen, I spent some time with this last night.
I wiped all the music from my phone, went through a chunk of albums and did the "find info for this album" thing then synced back with my phone (of course also making sure the setting under music and video on the phone "connect with Zune" is on).
Now I have all album art showing on now playing screen (finally!) and I also have backgrounds changing as well for most artists/albums (although it normally just shows 1 background per artist/album).
Major and newer artists like Foo Fighters, Oasis, Kasabian, The Who, Friendly Fires all change when songs are played. Others like Ocean Colour Scene and Sneaker Pimps are just black. Not sure If my tags are wrong on these or if Zune just doesn't have any images for these artists (is there any way to check if Zune has images)? Will have another play at the weekend!
dov74 said:
I wiped all the music from my phone, went through a chunk of albums and did the "find info for this album" thing then synced back with my phone (of course also making sure the setting under music and video on the phone "connect with Zune" is on).
Click to expand...
Click to collapse
I don't even have such a setting.
Tom Servo said:
I don't even have such a setting.
Click to expand...
Click to collapse
Strange!? I tap settings then applications then Music & Videos and it's the only option under there (apart from a link for Zune account settings). Is this mabye just on the Mozart?
see my response to this question here
http://forum.xda-developers.com/showthread.php?t=833871
Hi, guys. Technical question, I wanted to try making a quick application that streams from YouTube first, then I'll try other video sites.
I thought, since apps like SuperTube e LazyTube are out there, it must be possibile.
First thing, the player, currently I'm using SMFPlayer (Silverlight Media Framework Player), downloadable here: http://smf.codeplex.com/documentation, but there's one thing I can't understand, does it support only WMV9 clips? What about the mp4 you can get from Youtube?
So, here is my code, that doesn't work.
Code:
namespace WindowsPhoneApplication1
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
try
{
WebClient client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
client.AllowReadStreamBuffering = true;
client.DownloadStringAsync(new Uri("http://youtube.com/get_video_info?video_id=QjTKLFASeSI&fmt=18"));
}
catch (Exception ex)
{
// handle error
MessageBox.Show( ex.Message );
}
}
void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
PlaylistItem pli = new PlaylistItem();
// an exception, display the resource.
string token = "";
if (!e.Cancelled && e.Error == null)
{
string risultato = (string) e.Result;
int pos1 = risultato.LastIndexOf("&token=");
//int pos1 = risultato.IndexOf("&token=");
pos1 += 7;
int pos2 = risultato.IndexOf("&", pos1);
token = risultato.Substring(pos1, pos2 - pos1);
ApplicationTitle.Text = token;
}
else
{
ApplicationTitle.Text = "ERRORE";
}
pli.DeliveryMethod = DeliveryMethods.AdaptiveStreaming;
//pli.MediaSource = new Uri("http://ecn.channel9.msdn.com/o9/content/smf/smoothcontent/bbbwp7/big buck bunny.ism/manifest");
string mioPath = "http://youtube.com/get_video.php?video_id=QjTKLFASeSI&t=" + token + "&fmt=18";
pli.MediaSource = new Uri(mioPath);
Lettore.Playlist.Add(pli);
Lettore.Play();
}
}
}
I've tried:
1) using all the DeliveryMethods out there.
2) using both & and &, in the Uri's.
3) remove the &fmt=18 from the Uri's.
What is wrong? Am I using the wrong player? Is there some problem with the URL's? YouTube blocked them?
Thank you so much guys.
DT84.
To play YouTube videos you should research what is the MediaStreamSource is, and how to implement your own mss plus mp4 parser.
You may start learning things here: http://mediastreamsources.codeplex.com/
Try adding &ext=.mp4 at the end of the link. It works sometimes, kind of hacky but sometimes needed for the media player to understand the link is infact and mp4 file.
Than add this link to the mediaElement.source or someting like that. Its really not that hard
sensboston said:
To play YouTube videos you should research what is the MediaStreamSource is, and how to implement your own mss plus mp4 parser.
You may start learning things here: http://mediastreamsources.codeplex.com/
Click to expand...
Click to collapse
Thank you so much, too bad the parsers need a Stream object, and currently I can't find a way to get a Stream object from my FLV/MP4 streaming clip. Any clue?
Marvin_S said:
Try adding &ext=.mp4 at the end of the link. It works sometimes, kind of hacky but sometimes needed for the media player to understand the link is infact and mp4 file.
Than add this link to the mediaElement.source or someting like that. Its really not that hard
Click to expand...
Click to collapse
It doesn't work, it looks like the player I was using just can't play mp4's, thank you anyway.
DT84 said:
Thank you so much, too bad the parsers need a Stream object, and currently I can't find a way to get a Stream object from my FLV/MP4 streaming clip. Any clue?
It doesn't work, it looks like the player I was using just can't play mp4's, thank you anyway.
Click to expand...
Click to collapse
mediaElement can play mp4s, or just redirect it to the zune player. That also works. Note that playing vids does not work at all in the emulator, so its a PITA to debug it (pluggin/unpluggin constantly)
Marvin_S said:
mediaElement can play mp4s, or just redirect it to the zune player. That also works. Note that playing vids does not work at all in the emulator, so its a PITA to debug it (pluggin/unpluggin constantly)
Click to expand...
Click to collapse
Let's say I don't want to play just mp4s, but also... uhm... flvs. Is this totally impossible? I heard the video playback sucks in the emulator, but at least you can hear the video's audio. Just to say, damn, it's playing.
So... I think I have to dev unlock my phone, paying 100$ or whatsoever, just to debug my app?
Jeez...
Thanks for your help.
Great idea OP
i was thinking about this, but an idea is all i have
So the app plays flash video, but outside the browser, you get a button instead of the video in the browser which takes you to the player
and downloading would be great
mariu$ said:
Great idea OP
i was thinking about this, but an idea is all i have
So the app plays flash video, but outside the browser, you get a button instead of the video in the browser which takes you to the player
and downloading would be great
Click to expand...
Click to collapse
Ahem... that isn't what I'm planning to do. ^^'
what are you trying to do
another youtube client?
im pretty sure that the flash failure is one of the biggest, close to multitasking, but someone is working on it
so you can correct that
mariu$ said:
what are you trying to do
another youtube client?
im pretty sure that the flash failure is one of the biggest, close to multitasking, but someone is working on it
so you can correct that
Click to expand...
Click to collapse
Nope, neither.
It would be stupid to make another YouTube client, since the ones currently on marketplace are really good.
Streaming from YouTube is just for practicing.
Now I understand why few streaming apps are out there, it is a pain to try making one with that emulator, it just doesn't work, and I don't wanna dev unlock my phone before I even get my app to work flawlessy.
I guess that I have to develop something else first... >_>
You're wrong. It's not a rocket science of course; for experienced, professional software engineer the HLS implementation, 4 example, will take not longer than 1.5-2 month. But problem is: who will invest at least $30K (2 mo salary) and how investor will get money back? (I don't know, actually).
For newbie, I agree, it's kinda complicated project; much better to start from something simpler. BTW, I'm strongly recommending you to learn Silverlight/XNA before start coding for WP7, at least some basis.
i am trying to build a music player app that can play in any orientation (zune doesnt rotate !) my build is so basic and got few functions
i am completely new to building apps but i got this code from microsoft sdk and added the any orientation code from a website but cant find a code that makes the player reads the library also i wish any one help me or if anybody know how to make zune run in horizontal mode it will be great
AhmedtSadek said:
i am trying to build a music player app that can play in any orientation (zune doesnt rotate !) my build is so basic and got few functions
i am completely new to building apps but i got this code from microsoft sdk and added the any orientation code from a website but cant find a code that makes the player reads the library also i wish any one help me or if anybody know how to make zune run in horizontal mode it will be great
Click to expand...
Click to collapse
Not sure if you know how to make the app play music or not, but ask if you need help. For the orientation, in your XAML code, you are going to need the following to support landscape:
Code:
SupportedOrientations="PortraitOrLandscape"
That goes in your XAML page, above the '>' character near the top.
Additionally, this can be used to default it to portrait or landscape:
Code:
Orientation="Portrait"
or
Code:
Orientation="Landscape"
With that said, that doesn't mean it will look good. No offense Layout can be very tricky and in many cases additional code is needed to handle the orientation change. Although, if you use proper layout (in this case meaning horizontal/vertical alignment correctly and not relying too much on margins), then your app may end up working fine in both orientations. If you use Expression Blend, it makes it a lot easier to do this stuff if you go into the devices window.
i am asking for codes that make the app read my music library i already did what you said!
AhmedtSadek said:
i am asking for codes that make the app read my music library i already did what you said!
Click to expand...
Click to collapse
Okay, you are going to need a reference to the assembly 'Microsoft.Xna.Framework'.
Then add the using statement:
Code:
using Microsoft.Xna.Framework.Media;
Initialize your library:
Code:
MediaLibrary library = new MediaLibrary();
Then to play, for example, the first song in the library:
Code:
MediaPlayer.Play(library.Songs[0]);
Also, try getting albums (or genres, artists, etc.)
This shows how to play the first song from the 11 album:
Code:
Album album = library.Albums[10];
MediaPlayer.Play(album.Songs[0]);
Of course, I would recommend showing them in a listbox or something.