How to list audio files from a server - android

I want to get list of audio files from server that includes title, artist, album and cover art of that files and play audio file when user click on it in that list.
On the server we have a folder in the form of directory browsing.
enter image description here
In the music folder I want to show folders in form of folder and I want to play audios by choosing. If necessary, we can change the server because our team has prepared it.
Can anyone help me?

First of all, do you have your own server or service where you are going to make that call from or are you in search of a public server with these details? If public, I would suggest going over to www.programmableweb.com and search for Music API.
Once you found it, I would suggest looking at Retrofit as this can be used in android to retrieve data from an API easily.

Related

Android Exoplayer caching m3u8 audio for offline support

I am creating a music application.
I have used Exoplayer V2.8.0, So far I have achieved to play, pause next, prev, shuffle, repeat all songs using controls in-app and also with notification.
But all of this works only in online mode.
Now I want to add offline support to this app and allow a user to download the song offline and play while they are offline.
Audio files we are getting are *.m3u8 files.
But my problem is user should not access those downloaded files outside of my app. I have tried using one approach but it gives the mp3 files downloaded and combined from the different segments of the m3u8 file.
Can anyone guide me or give me sample or tutorial on how can I download the segments only and at the time of playing I can use that segment and play audio offline?
There is one suggestion for you,
If you want to create an offline player with .m3u8 or any other file then after download saves your file into your package folder with some of the different formats. Then while using that convert that specific formatted to mp3 or other which will help out for offline music play.
You can use a local http proxy server (NanoHttpd). Start the server and point your ExoPlayer to 127.0.0.1 so you can monitor the requests. Cache the m3u8 playlist plus the downloaded files for the first time you see a request. Next time when your proxy detects the same request, just play the files from cache.

Can MIT App Inventor receive image?

I am still new to cloud and mit app inventor.But I would to ask some question regarding cloud and mit app inventor.
But firsty i would like to explain how project should work.
My project is about home security system. When a press button is pressed, it will capture the image of visitor and the home owner will receive picture of the visitor on android app. The android should be able to receive picture and unlock door by pressing button unlock. The camera used is VC0706 Camera connected to Arduino Mega.
My question is that can mit app inventor receive picture from cloud since all of the picture taken will be stored in cloud.
Accessing images and sounds in App Inventor 2
Applications built with App Inventor can access sound, image, and video sources from three different kinds of locations:
Application assets
The sources labeled Media shown in the designer — part of the application's assets — are packaged with the application. Anyone who installs your application will have them, as part of the application. You also specify them in the designer, which is convenient. You can also specify these in programs by their file name: just use the file name without any special prefix. For example, if you have an image asset named kitty.png, you can use it as an image: just set the Picture property of an image component to the text kitty.png. You can similarly use files names for sound (Sound or Player) or video (VideoPlayer).
Assets are the most convenient to use, but the space for them is limited to a few megabytes, because they must be packaged with the application. They are good for small images and short audio selections. Bit you would probably not use them for complete songs or videos.
The phone SD card
You can access files on your phone's SD (secure digital) card using file names that begin with /sdcard . You could play a song on your SDCard by setting the source of a Player component to
/sdcard/Music/Blondie/The Best of Blondie/Heart of Glass.mp3
and starting the Player (assuming of course, that the song file is on the SDCard). Make sure to specify the complete file name, including the "mp3".
The Android system also includes an alternative way to designe SDCard files as URLs. Here you prefix the file name with file:///sdcard and use "URL encoding" for special characters. For example, a space is "%20". So you could designate the same file by setting the player source to
file:///sdcard/Music/Blondie/The%20Best%20of%20Blondie/Heart%20of%20Glass.mp3
Note that you'll want to use a Player component for this, not Sound. A complete song like this is too large for Sound to handle.
Images and videos can be designated similarly.
App Inventor doesn't (yet) include any way to store files on the SD card. It also doesn't (yet) include a way to list the files on the SDCard. You'll have to use other applications or the Android phone file manager for that.
Using the SD Card provides a lot more space for media than trying to package things as assets. The drawback is that users won't automatically get them by installing your application.
URLs and the Web
You can access files on Web using URLs, starting with http:// , for example, setting the picture property of an image to
http://www.google.com/images/srpr/nav_logo14.png
and similarly for music and videos. Make sure you use the link that points to the actual file, not to players for the files, which is much more common on the Web, especially for music and videos.
Other content URLs
The Android system also uses URLs to access various places that media is stored on the phone. For example, the images in the photo gallery can be accessed with file names beginning content://media/external/images/media , as you can see by using the ImagePicker and examining the resulting image path.
App inventor 2 has built-in web storage TinywebDB which stores text strings only.
In your scenario, post the images to somewhere on the web, and then store the image URIs in TinyWebDB insdie App inventor.
Yes, using MIT App Inventor you can send and receive the picture not directly but indirectly. First, you have to convert that image to imagebase64 it means in text formate then decode this text to get the original image. It means you can store any images in clouddb or firebase. Here is the video about that
https://youtu.be/ySruxnxeJgM

Streaming Audio from server to Android App

I am kind of stuck on my app design and wondering, if some of you experts, could point me in the right direction.
I am working an Android App that shows how to pronounce different English words.
When user clicks on a play button next to a word, corresponding audio file (prerecorded wav file) is played with Android media player. I have 2000 words and corresponding wav files (each file is between 1 to 2 seconds).
But the problem is, I can’t pack all 2000 audio files into APP, as it will make APP too big. I am wondering, what is the best way of having the audio files on the server somewhere, and when user clicks play button next to a word, my APP plays from server. Are there any other ways of doing this?
Do I need streaming server for this (it’s not live stream), if so would you please let me know some that host? Can I use Heroku?
Thanks for help
Srini
You do not need a streaming server for that. A simple web pages server will do the job. Just put all your files in (maybe via ftp) to the server in a directory that you now exactly. From there, you can use the MediaPlayer class of android to play those sounds in streaming with the appropriate link to the file.

Android: Grouping audio and video files

I am newish to Android, so please be patient with me! I am building an application in which I need to be able to allow users to record audio and take photographs in order to add entries to the app - entries will consist of multiple audio files and a single image. I need to be able to allow the user to select an entry so that they will be able to view the image and play the audio files.
What would the best way to go about this be? Should I look into storing the image and audio related to that image in a database, or is there a better way of doing this? Any advice/resources would be appreciated!
Thanks,
Daniel
You should store the audio and photos to sd-card as it is designed to save larger files. But if you want to group these audios and images, you can use database for it. Create a simple table which holds entry_id(Group id) with type(Audio,image), name and their file_path on sd-card. In this way you can keep track of your audio and images which are grouped to-gether.

android secure data storage

i am developing one android application. it download videos from server and store it in mobile.
i want to store those video in secure manner.(deny the user from copying. or deny them from viewing the video directly from sdcard)
i found two ways to solve the problem.
1)Store the video's inside the application.
2)Encrypt the entire video
but facing some problem in implementing solution
i)first solution found suitable. but i am fearing that. if we store too much video inside the application .it would become bulkier.and fore the user to uninstall.
ii)but in second solution. i did not find any correct way to do so.
so please help me to solve the problem.
This is kind of suggestion :
To store the videos you must have created some folder on SDCARD, so you can hide the folder by putting the "." in front of the name while creating it. on top of this you can encrypt the video file using AES algorithm so it can not be viewed, if copied outside the android it will not be view able. but from your application you can decry-pt the file and view it.
Definitively, you must encrypt the media and that's quite simple. What is more difficult is to play the media, because MediaPlayer only accepts clear contents. A basic way would be to convert an encrypted file to a decrypted one, just for the time of the playing session. A better approach is to build a stream from the file, decrypt that stream and feed it to the player. The hard point is to have a local http server to serve the stream.

Categories

Resources