B4A Library [Lib] MediaBrowser

hvkaniti

Member
Licensed User
Longtime User
Thank you sir. Could you suggest me if you have any websites or online documentation in your mind as a reference? That helps me a lot.
 

hvkaniti

Member
Licensed User
Longtime User
Thank you very much for your guidance Sir. I am working hard to learn this subject and come up with a library.
 

lorebarita

Member
Licensed User
Longtime User
Getting a list of videos from a specific folder

Hi...I am developing an application and i want to get a list of videos from a specific folder in the SDcard. Am using the MediaBrowser library but am not able to acccomplish that...please help :sign0085:...
 

Informatix

Expert
Licensed User
Longtime User
Hi...I am developing an application and i want to get a list of videos from a specific folder in the SDcard. Am using the MediaBrowser library but am not able to acccomplish that...please help :sign0085:...

Get the video list as I do in the demo and filter the list to keep only the files located in the specific folder. You can filter with a condition like:
B4X:
Dim Location as String
Location = m.Get("Location" & i)
if Location.StartsWith(folder_path) then
...
 

stefanoa

Active Member
Licensed User
Longtime User
hi,
some news about a new release of mediabrowser library that implement other ID3 tags?
At moment i use mediabrowser for my app, but for every song i have to read ID3 tags (genres, etc.) with ID3 class , but ID3 class is very slow...

B4X:
MB.Initialize("MB")
Dim m As Map
m = MB.GetMediaAudioList(True, "artist COLLATE UNICODE, title COLLATE UNICODE" )
....
For i = 0 To (m.Size / 9) - 1
       xLocation=GetParentPath(m.Get("Location" & i))
       xSongfilename=GetFileName(m.Get("Location" & i))

       ID3.Initialize(xLocation, xSongfilename)   '<<<< VERY SLOW
       If ID3.Exists = True Then 
           GenreName=ID3.Genre
       End If
       list1.Add(GenreName)
next
.......

thanks
 

Informatix

Expert
Licensed User
Longtime User
hi,
some news about a new release of mediabrowser library that implement other ID3 tags?
At moment i use mediabrowser for my app, but for every song i have to read ID3 tags (genres, etc.) with ID3 class , but ID3 class is very slow...

I'm very busy currently and most of my free classes and libraries are on pause. But expect something before the end of this month.
 

Informatix

Expert
Licensed User
Longtime User
Finally, no version this month. Mainly because the audio genre is not stored in the MediaStore. I won't release a new version just for the composer field (very rarely used in MP3 tags).

@Stefanoa
Your only way currently to get the missing fields is to use the ID3 class.
 

Yeshua

Member
Licensed User
Longtime User
copy mp3 files with specific title

Hi, maybe you can help me.

I have hundreds of MP3 files in "DirAssets" folder, but I want to copy only those that have the title "SUN".

I tried this way but it does not work. In this way mp3 files are copied all.
You can do this? Thank you!

B4X:
Sub Button1_Click
Dim MyList As List
Dim MyFile As String
Dim i As Short
Dim Title As ID3               :Title.Title = "SUN"
Dim FilePathSource As String        :FilePathSource=File.DirAssets
Dim FilePathDest As String          :FilePathDest=File.DirRootExternal & "/Audio"
   MyList.Initialize                   
    MyList=File.ListFiles(FilePathSource)
    For i=0 To MyList.Size-1
    MyFile=MyList.Get(i)
   If MyFile.Contains(Title)=False  Then
   Try
   File.MakeDir(File.DirRootExternal, "/Audio")
    File.Copy(FilePathSource,MyFile,FilePathDest,MyFile)
    Catch
    End Try
    End If
    Next
End Sub

ID3 (Class Module)

B4X:
Sub Class_Globals
Public Title As String
End Sub
:sign0085:
 

Informatix

Expert
Licensed User
Longtime User

What's the relationship with the MB library ? You should ask your question in the ID3 class thread. I don't use this class so I don't know how it works and what you can do with it. However, by reading your code, I see you do exactly the contrary of what you expect: you copy all files except those with the required title.
 

DavidLen

Member
Licensed User
Longtime User
compile failes

Hi

I'm using b4a 2.3

I'm trying to compile the demo, and it fails on line 11: Dim MB As MediaBrowser

I have copied the MediaBrowser JAR and XML files to the 'additional libraries' folder, and it did not help, then I copied them to the root folder of the project and it still fails.

What am I doing wrong?

David L.
 

Informatix

Expert
Licensed User
Longtime User

You did nothing wrong. They must be copied into the additional libraries folder. Did you reload the B4A example after that and check that the library is selected in your libs tab ?
 

DavidLen

Member
Licensed User
Longtime User
You did nothing wrong. They must be copied into the additional libraries folder. Did you reload the B4A example after that and check that the library is selected in your libs tab ?

Thank you, that was the missing part, I appreciate the help.

David L.
 

Dave O

Well-Known Member
Licensed User
Longtime User
Another very useful library, thanks!

I just used it to fetch random images from the device's mediastore.

I did notice that I occasionally got NumberFormatExceptions when reading the width using map.get ("expected double, got NULL"). I don't know if that's a bug or (more likely) some bad meta-data stored for the image.

BTW, I'm trying to pull photos that match the current orientation of the device (i.e. portrait pictures when in portrait mode). I don't think I can determine this from the dimensions of the photo. Is there any way to do this, either through meta-data or (I doubt) programmatically?

Thanks again for the great library!
 

Informatix

Expert
Licensed User
Longtime User
I did notice that I occasionally got NumberFormatExceptions when reading the width using map.get ("expected double, got NULL"). I don't know if that's a bug or (more likely) some bad meta-data stored for the image.

Width and Height are not reliable. They are null with pre-Honeycomb OS versions. Use the GetImageDimensions function instead.
You have to read the Exif data of a jpeg to know its right orientation. There's a library available for B4A (JpegUtils).
 

enrico

Active Member
Licensed User
Longtime User
I think this lib can't get files from a website. Is there a solution ?
 

Mrjoey

Active Member
Licensed User
Longtime User
hello mr informatix , glad to use ur great library , its really fast , i have some suggestion if u have time for updates :
it seems ur using the native mediaplayer class , i've done my own wrapper for this class and it succeeded to load the cover bitmap of the mp3 file by using :
B4X:
@ShortName("MetaData")
public static class MetaD {
     MediaMetadataRetriever Meta = new MediaMetadataRetriever();
         public void LoadFile(String file){
            Meta.setDataSource(file);
           }
public byte[] Picture(){
             return Meta.getEmbeddedPicture();
         }[CODE]
but my wrapper is pretty slow while retreiving informations i dont know why.
i suggest u to include this line cz i need to display covers in the list.
i also suggest to make a sub for path , to make an option wish folder to search ,and thank u so mush for ur efforts .
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…