How to multiple background video downloads in iOS? - iphone

I have an iOS application, where I need to download over 60-70 videos a week of size 3-8MB each.
The issue is, how do I download these videos?
I am storing the list of videos and urls in a database.
Possible solutions:
Use a UIBackgroundTaskIdentifier, call beginBackgroundTaskWithExpirationHandler as soon as the app starts. This task will download one video.
In the endBackgroundTask I will mark that particular video as downloaded.
Concerns here are, can I start multiple UIBackgroundTaskIdentifier?
Where should I start them? In AppDelegate? A particular controller?
If I start it in a particular controller, on viewDidLoad() what will happen if the app exits?
Please guide me or provide an alternate solution.
Thanks

Use AFNetworking as ASIHTTPRequest is deprecated.
Refer AFNetworking source link.
Also refer afnetworking-downloading-multiple-files link and Does AFNetworking have backgrounding support link.
EDIT : start downloading in AppDelegate
Check AFDownloadRequestOperation for resumable download.
Refer afnetworking-pause-resume-downloading-big-files using AFDownloadRequestOperation link.

You can download multiple files with ASIHTTPRequest in the background. See the documentation here.
Please note that ASIHTTPRequest is no longer working so you can use AFNetworking.
AFNetworking is a delightful networking library for iOS and Mac OS . It's built on top ofNSURLConnection,NSOperation, and other familiarFoundation technologies`. It has a modular architecture with well-designed, feature-rich APIs that are a joy to use.
Find the SDK here.

Related

iPhone: Efficiently downloading images from a URL into iPhone App

In my iPhone app , I need to display the images from server.
I need to download it and save it from URLs.
There are roughly 20 images which I need to download.
What could be a way out where in performance doesnt decrease?
I have tried previously using NSData to convert the images into NSData and saving it to my app but it takes lots of time.
What could be a more easier and efficient way out?
I recommend using ASIHTTPRequest to download the images asynchronously, and display them when they're ready. By using the asynchronous interface of that class, your app can be responsive and continue to operate normally while, in the background, you wait for the data to be loaded.
ASIHTTPRequest is open source and free to use: http://allseeing-i.com/ASIHTTPRequest/
The code the Facebook app uses to download and display images has been open-sourced as part of the three20 library.
If you want to write your own networking code ASIHTTPRequest is a very useful library that includes features such as downloading directly to a file and queue management.

iPhone/iPad HTTP streaming library or server

Is there any available open-source (preferred) or commercial library for on-fly segmenting and streaming of video to iPhone / iPad?
Also, is there any open-source/commercial server (alternative to Wowza) which supports this?
Apple offers mediastreamsegmenter:
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/UsingHTTPLiveStreaming/UsingHTTPLiveStreaming.html
You might also want to peek at Best Practices for Creating and Deploying HTTP Live Streaming Media for the iPhone and iPad:
https://developer.apple.com/library/content/technotes/tn2224/_index.html
There's also Darwin Streaming Server, but you may not need it.
Your first preoccupation should be to try to peek a good segmenter (video speaking): Apple's one is fine.
Then, if you wan't in-memory segmenting, mount the input source folder to a RAMdisk...
Take a look at following link;
http://developer.apple.com/library/ios/#samplecode/MoviePlayer_iPhone/Introduction/Intro.html
This example will show how to play videos from a network based URL.
For more details about playing videos;
You can check red5(java & opensource).
Check lastest beta, or code in svn (as lot hav changed since last officeial release).
It may or may not be able to do that out-of-the-box, if not you can code your red5 app and/or check others people code built arround red5...

How to copy a song from iPod Library to app?

In my application, I want to copy a song from iPod Library.
How can I do that?
Yes. It is possible, but hardly practical, to access raw song data. What you do from there is up to you. Here is a lengthy and detailed description of the process: http://www.subfurther.com/blog/?p=1103.
EDIT: Please be aware of App Store guideline 9.1 before making use of this technique. These guidelines require a developer login, so I've removed them from my post.
I think you can't.
Apple should not allow this !
Edit : see iPod Library Access Programming Guide but I don't think you can access to file. Just metadata.
if iMovie can do it, and they say it is done with all public API's they are in direct conflict with themselves...
Maybe this gives them wiggle room to allow you to post iPod library content to YouTube, since YouTube handles the appropriate detection of sensitive audio. This is sticky but here is the final solution you should learn from to do the job...iPodLibrary Music to PCM Samples revised
Checkout this it will helps you
https://github.com/davidcairns/MediaPlayerDemo

getting data from server and store in the iPhone

i want to develop an iPhone app where the app downloads data (say audio clips) from a specified server and stores it locally on the device.
then the app should use the data stored in the device rather than stream it from the server.
could anybody give me the guidelines as to how this can be done? tutorials and samples also appreciated. Thanks :)
The easiest way to play files from the internet is to use -[AVAudioPlayer initWithContentsOfURL:error:]. If you want to make sure that the whole file is downloaded, I think your best bet would be to download the file using NSURLConnection (see the URL Loading Guide) and then using -[AVAudioPlayer initWithData:error:].
Look into ASIHTTPRequest, you will find it much easier to fetch large chunks of binary over the web asynchronously than if you try to code everything yourself.

iPhone SDK: Is it possible to process audio file from local library

Well, I will try best not to make it as a 'I just want the code' question...
I'm recently working on a project which requires some audio signal processing from local music files (e.g. iTunes Library). The whole work includes:
Get the PCM data of an audio file (normally from iTunes library); <--AudioQueue (?)
Write the PCM data to a new file (it seems that Apple does not allow direct modification on music tracks); <--CoreAudio(?)
Do some processing and modification, like filters, manipulators, etc. <-- Will be developed in C++
Play the processed track. <--RemoteIO
The problem is, after going through some blogs and discussions:
http://lists.apple.com/archives/coreaudio-api/2009/Aug/msg00100.html, http://atastypixel.com/blog/using-remoteio-audio-unit/
http://osdir.com/ml/coreaudio-api/2009-08/msg00093.html
as well as the official sample codes, I got a feeling that the CoreAudio SDK allow us to apply audio processing only on voice demos recorded from Mic.
My question is that:
Can I get raw data from iTunes library tracks instead of Mic input?
If the first question is 'No', is there a way to 'fool' the SDK to let it think it is getting data from Mic input, not from iTunes? (I have done some similar 'hacking' stuff in C# before XD)
If the whole processing just doesn't work, can anyone provide some alternative ideas?
Any help will be appreciated. Thank you very much :-)
Thanks.
Just found something really cool yesterday.
From iPhone Media Library to PCM Samples in Dozens of Confounding, Potentially Lossy Steps
(http://www.subfurther.com/blog/?p=1103
And also a class library by MIT:
TSLibraryImport: Objective-C class + sample code for importing files from user's iPod Library in iOS4.
(http://bitbucket.org/artgillespie/tslibraryimport/changeset/a81838f8c78a
Hope they help!
Cheers,
Manca
1) No. Apple does not allow direct access to PCM data of songs. Otherwise you could create music-sharing apps, which is not in Apple's interests.
2) No. Hacking and getting approved is impossible due to Apple's code approval mechanism.
3) The only alternative I could think of is that you have to do the processing part on PC/Mac and then transfer it to the iPhone. Or you would have to store the files in your own applications folder - you should be able to load and process these via CoreAudio.
I know this thread is old but... did this work for you, Manca? And did this app get approved?
EDIT: just discovered the AVAssetReader class, introduced since iOS 4.1, should help