Audio sharing for iOS applications

Door Elephtera op maandag 25 oktober 2010 09:12 - Reacties (7)
Categorie: Software Engineer Related, Views: 2.953

Tijdens het programmeren voor de iPhone/iOS kwam ik een vervelend probleem tegen. Zonder de telefoon te jailbreaken is het niet mogelijk om op een nette manier audio/data te delen.

Data valt nog wel te delen door een NSURL te gebruiken, maar hier zit een limiet op van 256 characters. base64 wil hier nog wel wat mee helpen maar echte data kan niet.

Fotos/videos kun je benaderen via de image picker. het is niet triviaal om de data dan ook te benaderen, maar het is mogelijk.

Audio daarentegen is een heel ander verhaal. Apple heeft een aantal keuzen gemaakt die het delen van audio niet toestaan:
- elke applicatie draait in een sandbox
- de audio/itunes library is niet officieel toegankelijk

Omdat we sandboxed draaien kun je niet de data benaderen van andere applicaties (bijvoorbeeld de dictafoon). Hier ben ik een tijdje mee bezig geweest om een oplossing te vinden.

- Als beide applicaties identiek gesigned zijn kun je de keychain gebruiken, maar ook daar zit een limiet op qua data grootte
- NSUserDefaults, hier kan alleen basale data in (nsxxx zoals nsdata, nsstring, etc) en ook al lijkt dit voor suites bedoeld te zijn, het blijft binnen de sandbox en is dus ook onbruikbaar. Het is eigenlijk alleen bedoeld voor 1 applicatie die zijn instellingen wil onthouden
- NSURL's gebruiken, alleen heb je dan de max 256 character limiet. Dit kan wel gebruikt worden om een applicatie te wijzen op de locatie van bepaalde data
- UIPasteBoard: data kopieren en plakken voor de gehele iphone. Dit klonk veel belovend, werkt ook, maar blijkt een limiet te hebben rond de 5MB. Echter dit is een stuk meer dan de 256 char van een nsurl.

Bij het zoeken in combinatie met de uipasteboard vond ik een project dat zichzelf neerzet als open standard for sharing audio data between applications: http://code.google.com/p/intua-audio-sharing/

Zij bieden een stukje code waarmee de audio in stukken gehakt wordt waarmee de 5MB grens opgelost wordt. De 5 MB limiet blijkt namelijk per uipasteboard item te zijn.
Hun code biedt ook de code om de data weer terug te halen van de pasteboard.

Tot apple in de toekomst misschien wel mogelijkheden hiervoor biedt moeten we moeilijk doen, en kunnen we het beste allemaal dezelfde standaard gebruiken.

Volgende: uTorrent as a service on windows Vail 10-'10 uTorrent as a service on windows Vail

Reacties


Door Tweakers user sebastius, maandag 25 oktober 2010 10:11

Wat voor App ben je aan het bedenken dat je audio moet uitwisselen met een andere app?

Door Tweakers user Patriot, maandag 25 oktober 2010 10:15

Volgens mij is hij geen app aan het maken, maar wil hij gewoon data uitwisselen met andere mensen. Net zoals dat met praktisch alle andere mobieltjes met bluetooth wťl kan.

EDIT: Niet dat het niet mogelijk is dat hij een app aan het maken is, ik vermoed echter dat dat dan alleen is met als doel het kunnen uitwisselen van bestanden met anderen. Niet zozeer met andere apps.


Nvm, ik praat poep.

[Reactie gewijzigd op maandag 25 oktober 2010 10:21]


Door Tweakers user Apache, maandag 25 oktober 2010 10:28

Dat is wat momenteel hard ontbreekt op IOS, een shared filesystem.

Vaak staan er nu in verschillende apps documenten dubbel, word het snel onoverzichtelijk, hopelijk word dit flexibeler in de toekomst en krijgen we iets als Finder op ios.

Door Tweakers user funk-e, maandag 25 oktober 2010 11:25

Misschien praat ik ook poep, maar wordt het in niet mogelijk om audio via BT en Wifi te delen in de volgende iOS firmware 4.2?

[Reactie gewijzigd op maandag 25 oktober 2010 11:25]


Door Tweakers user Elephtera, maandag 25 oktober 2010 11:51

Het gaat hier echt om 2 apps die data (audio) met elkaar moeten communiceren

app 1 neemt op, en bewerkt, en doet er vanalles mee
app 2 kan kiezen uit verschillende soorten media om dit vervolgens te verzenden. Een van die media is audio, opgenomen met app 1.

Een simpele oplossing zou zijn: 1 applicatie die beide functionaliteiten heeft, echter app 1 wordt niet door mij ontwikkeld en dat is ook niet wenselijk voor de klant.

Het verzenden van audio via bt of wifi gaat hier dan ook niet mee helpen. Dat zou alleen helpen als je tussen twee telefoons wilde communiceren.

Door Tweakers user Herko_ter_Horst, maandag 25 oktober 2010 20:21

Er zijn diverse apps die op de een of andere manier gebruik maken van Dropbox. Ik weet niet hoe dat precies werkt, maar je zou daar eens naar kunnen kijken.

Door Tweakers user Elephtera, dinsdag 26 oktober 2010 09:05

Herko_ter_Horst schreef op maandag 25 oktober 2010 @ 20:21:
Er zijn diverse apps die op de een of andere manier gebruik maken van Dropbox. Ik weet niet hoe dat precies werkt, maar je zou daar eens naar kunnen kijken.
Dropbox is een online dienst. Daarvoor wordt de data online gezet, om het daarna weer te downloaden. Met grote bestanden op een G verbinding of zelfs 3G is dat niet echt te doen.

Reageren is niet meer mogelijk