I'm working on a little mobile site for a musician and they want to be able to let users download a song for free on their mobile device. The problem I'm running into is that in Safari for iPhone the song plays in the browser no matter what and does not get added to the music library.
On Android I've been able to force a download which the user can then add to their music application of choice. I was hoping there was some way to get the song into the iPhone music library with out requiring some additional application or going through iTunes.
Any help would be greatly appreciated. Thanks!
It is not possible to have Mobile Safari download a media file from your site to a device's library. That and many other parts of the iOS filesystem are protected from external access.
Safari on iOS 13 and up finally supports file downloads, just like Android and Chrome.
According to a senior level Apple Support Rep, Apple has coded their OS to specifically prevent any audio file that does not have DRM protection, to be downloaded. This means Apple products will force a file to stream as opposed to downloading the entire file. Finding an official statement from Apple is difficult so the closest I could get was talking to a senior rep. You can, of course, call apple for free support with ANY apple product (including I-tunes on windows lol) by calling 1-800 My Apple. Most likely you can get additional confirmation there.
I actually created a site where if you click on a link with a windows or android device, it forces the download. This doesn't work on Apple devices, it still will only stream. The only real fix for this is to offer the file as a compressed file. (ie. zip) then they could download the compressed file but then they would have to open the .zip up and extract the audio.
Ironically, I'm currently looking into how I can use PHP to "zip" a file up on the server side per client request and then deliver them the file in the compressed format. I stumbled across this post because I was attempting to see if there was a way to fool a system into believing a file was in fact protected when it was not.
Hope this helps.
Related
I have existing Flash application, which compiles to SWF and runs on web. I'm looking at converting that application to work on mobile devices such as iPhone/iPad.
I see that there is now a way to publish Adobe Air applications on mobile devices. My thought is why not convert SWF to AIR application and then use that AIR application to publish on mobile devices. Does it make sense? Is this even possible or doable?
What are people doing to convert their existing Flash SWF applications to work on mobile devices?
This question was just answered here, but to recap any Flash content can be packaged to iOS or other mobile device with AIR.
AIR can be overlaid to Flash Professional or Flash Builder, or your SWF can be packaged using the ADT command line packager:
Download AIR 3.0 SDK.
Assure JRE, or use the one from Flash Builder.
Execute adt to package your SWF to an IPA:
adt -package -target [ipa-test | ipa-debug | ipa-app-store | ipa-ad-hoc]
-keystore iosPrivateKey.p12 -storetype pkcs12 -storepass qwerty12
-provisioning-profile ios.mobileprovision
HelloWorld.ipa
HelloWorld-app.xml
HelloWorld.swf icons Default.png
It's important to note that all executable code must reside in a single SWF to run on the iOS platform. SWFLoading or any dynamically loaded SWF that executes code is not supported. So, link all your Flash to a single SWF.
There are other considerations, such as optimizing performance and handling multiple screen resolutions and aspect ratios.
References:
http://www.adobe.com/devnet/air/articles/packaging-air-apps-ios.html
http://www.adobe.com/devnet/air/articles/packaging-air-apps-android.html
http://www.adobe.com/devnet/air/articles/packaging-air-apps-blackberry.html
There are a few ways to achieve this:
You can download Adobe AIR SDK, and follow their help or this tutorial. This method would be a bit tedious if you are not comfortable with command line, but it is perhaps the most powerful option because you get to tweak and control a lot of options.
If you have the FLA file, the latest version of Flash CS6 should provide you the means to create IOS IPA file more effortlessly. If you are a Windows user, you would need to get the p12 file as well as mobile provision file. Adobe has documentations on how to do that without a Mac. Eventually when your IPA is ripe for AppStore, you would need a Mac.
Keep in mind that the user experience of an SWF would not right away translate well for iOS. For example, the size of buttons, the affordance of interactive user controls, and most importantly, mouseover events could sometimes adversely impact the experience of a mobile app.
But those problems have nothing to do with SWF, as I have seen similar issues with other HTML-based web apps too.
Good luck, I would say writing Flash and it runs everywhere including iPhone/iPad is truly an amazing thing that most people don't know.
I have been doing this exact thing for a year or so.
You do have to set up your certificates using the keychain on the Mac, and you have to upload the app from a Mac. However, I do not have a Mac . . . instead, I rent time on a remote Mac using (macincloud or others), and use DropBox to send the files back and forth.
Depending on how the SWF was created, you do not necessarily need to buy Adobe products. I use FlashDevelop, which sets up the latest Air and Flex SDKs automatically. As long as you have a developer's license, you can create the Air application from that, and you can also create the IPA file for loading into iTunes (or Google Play, or others).
Make sure you have read #JasonSturges response as well. Good tips and links.
I have been researching on whether we can create an app which will play Play-ready protected DRM video files in apple's native media player. But what I could collect is that apple will not allow DRM protected video files to be streamed or played through media player. However if this the case, how there exists solutions which can decrypt the files and play them from within the app?
Also as per my R&D, the device should support play-ready file format. Hence now OEM's are launching phones like HTC, nokia with play-ready support. But how will we provide support on apple devices?
Please, any inputs or thoughts on this will surely be helpful.
You may be interested by the solutions of
Discretix: http://www.discretix.com/DRM/index.html
and
and Authentec: http://authentec.com/a/downloadabledrm.aspx?gclid=CNT399qy4a4CFUG_3godhRa2YA
Creating an app that uses PlayReady should be possible but to enable ReadyPlay via the "native media player" is up to Apple alone - they control the installed codecs. Getting PlayReady on an apple product may be tricky. As a Microsoft propriety DRM format you will need to get licensing from Microsoft and pass the appstore at Apple. Any tools offered for PlayReady will be PC centric, the DRM may be platform agnostic but without IOs friendly tools you have a lot of work ahead.
Is there a way to specifically format a link on my page to tell a mobile device such as an Android phone or an iPhone that when a user clicks a link to a mp4 file (for example) to go ahead and play it (or ask the user if they want to play it) using their phone media player?
I'm working on a web app with mixed results, most of the times the device just goes straight into download mode, and attempts to save the file to the downloads folder, but what I would like is to make it so the device starts automatically playing the file as soon as possible.
My app is basically a file sharing app that creates qr codes and thus allows you to share media to mobile devices... the thing is, when it comes to video files and maybe images, I want the phone to automatically display the media and not just download it.
Any help would be greatly appreciated. You can see the app here http://scan2see.me
You could always use a <video> tag to make your videos play instead of just linking to them.
FYI iOS devices never download anything, unless jailbroken and with Safari Download Manager plugin (or other one like it) installed. So even if you just link, it will always play. And the reason why all videos play at full screen is because the iOS instantiate Quicktime to play it.
I want to be able to read code on my iPhone in the bus every day. Ideally, I'd like to be able to download a package, extract it to a folder, put it on the iPhone, and be able to just browse through the code (folders & files and all). Don't need to be able to edit, just read.
Is there a good solution for this? If there is not, could it be a good first project to teach myself iPhone development? or would it be too big a chunk for a first bite? (right now I mainly just do python web app development)
Thanks!
Check out the Airsharing app. When you run the app, it creates a server on your network (when sharing is enabled) and provides you an ip address you punch into a browser. You then upload files to the device via an ajax interface. Later on, you just open up the app and click the file you want to read and it displays on the screen. I've fiddled with it and it does preserve code highlighting.
You might also check out the new MobileMe iDisk app that just got released today. It looks like a slick way to share files between the iPhone and a Mac (and the cloud). You need to be a MobileMe subscriber, though.
Is there a way for my iPhone app to add media (mp3s) not in its iPod library to iTunes once the user plugs/syncs to a desktop such that the media will get sync'd back into the iPhone's iPod library?
I know the question is rather general, but if it is indeed possible, can anyone nudge me in the right direction?
Who wants to write a sync app for mac and windows? Try serving a bonjour discoverable upload page from the iPhone. I got cocoahttpserver up and running in a few minutes.
No, it's not possible to do this using anything provided by the iPhone SDK. The only way to do something similar would be to store the media in your iPhone application's local storage, write an OS X application that discovered your iPhone via Bonjour, synced the content via WIFI, and then added it to iTunes.
Take a look at "Things" (an iPhone todo list application) if you'd like to see an example with sync-to-desktop functionality.
there is a way, i've done it through an app and it wasn't complicated. sadly I forgot and am currently looking for where I found the answer and thats how I stumbled upon this.