Corona SDK een muziekspeler maken - Applicatie-instellingen

In deze tweedelige zelfstudie gebruiken we de Corona SDK om een ​​aantrekkelijke muziekspeler te bouwen. Lees verder!


Stap 1: Applicatieoverzicht

Met behulp van vooraf ontworpen grafische afbeeldingen coderen we een vermakelijk spel met Lua en de Corona SDK

De gebruiker kan vooraf gedefinieerde audiobestanden afspelen en besturen en informatie daarover bekijken.


Stap 2: doelapparaat

Het eerste wat we moeten doen is het platform selecteren waar we onze app binnen willen laten, op deze manier kunnen we de grootte kiezen voor de afbeeldingen die we zullen gebruiken.

Het iOS-platform heeft deze kenmerken:

  • iPad: 1024x768px, 132 ppi
  • iPhone / iPod Touch: 320 x 480 px, 163 ppi
  • Iphone 4: 960x640 px, 326 ppi

Omdat Android een open platform is, zijn er veel verschillende apparaten en resoluties. Een paar van de meest voorkomende schermkenmerken zijn:

  • Google Nexus One: 480x800px, 254 ppi
  • Motorola Droid X: 854x480 px, 228 ppi
  • HTC Evo: 480x800px, 217 ppi

In deze zelfstudie concentreren we ons op het iOS-platform met het grafische ontwerp, dat specifiek wordt ontwikkeld voor distributie naar een iPhone / iPod touch, maar de hier gepresenteerde code moet ook van toepassing zijn op Android-ontwikkeling met de Corona SDK.


Stap 3: Interface

Een donkere, mooi ogende interface wordt weergegeven, dit omvat meerdere vormen, knoppen, bitmaps en meer.

De interface grafische hulpmiddelen die nodig zijn voor deze tutorial zijn te vinden in de bijgevoegde download.


Stap 4: grafische afbeeldingen exporteren

Afhankelijk van het apparaat dat u hebt geselecteerd, moet u mogelijk de afbeeldingen in de aanbevolen PPI exporteren, u kunt dit doen in uw favoriete afbeeldingseditor.

Ik gebruikte de Pas grootte aan? functie in de Preview-app op Mac OS X.

Vergeet niet om de afbeeldingen een beschrijvende naam te geven en deze in uw projectmap op te slaan.


Stap 5: nummers

Kies een paar nummers uit je muziekbibliotheek en plaats deze in je projectmap. We zullen leren hoe we ze moeten spelen in de volgende stappen.


Stap 6: App-configuratie

Een extern bestand zal worden gebruikt om de applicatie op verschillende apparaten op volledig scherm weer te geven, de
config.lua het dossier. Dit bestand toont de oorspronkelijke schermgrootte en de methode die wordt gebruikt om die inhoud te schalen in het geval de app wordt uitgevoerd in een andere schermresolutie.

 toepassing = content = width = 320, height = 480, scale = "letterbox",

Stap 7: Main.lua

Laten we de applicatie schrijven!

Open de Lua-editor van uw voorkeur (elke teksteditor werkt, maar u hoeft geen syntax te markeren) en bereid u voor op het schrijven van uw geweldige app. Vergeet niet om het bestand op te slaan als main.lua in je projectmap.


Stap 8: codestructuur

We zullen onze code structureren alsof het een Klasse is. Als u ActionScript of Java kent, zou u de structuur vertrouwd moeten vinden.

 Necesary Classes Variabelen en constanten Declare Functions contructor (Hoofdfunctie) class methods (other functions) call Hoofdfunctie

Stap 9: statusbalk verbergen

 display.setStatusBar (display.HiddenStatusBar)

Deze code verbergt de statusbalk. De statusbalk is de balk boven op het scherm van het apparaat die de tijd, het signaal en andere indicatoren toont.


Stap 10: Achtergrond

Een eenvoudige donkerbruine afbeelding wordt toegevoegd als achtergrond voor de applicatie-interface.

 -- Afbeeldingen - [Achtergrond] lokale bg

Stap 11: Informatiebalk

De informatiebalk bevat de albumhoes, de naam van het nummer en de artiest. Het wordt in het midden van het podium geplaatst.

 -- [Info balk] lokale infoBar lokale voortgangBar lokale voortgang

Stap 12: Albumart

Er wordt een variabele gemaakt om de albumillustratiekopie op te slaan, deze afbeelding moet zich in de projectmap bevinden. Meer hierover in de laatste stap.

 -- [Image Marker] local imageMarker local cdCover

Stap 13: Informatietekst

De naam van het nummer en de artiest worden opgeslagen door de volgende variabelen:

 -- [Info Bar Text] lokale titelTekst local byText local artistText

Stap 14: Knoppenbalk

Deze balk geeft de bedieningsknoppen weer, evenals de voortgangsbalk en de duur van de song.

 -- [Knoppenbalk Bg] lokale knopBar - [Knoppen] lokale playBtn lokale stopBtn local prevBtn local nextBtn - [Knoppenbalktekst] lokaal huidig ​​lokaal totaal

Stap 15: Songs-gegevens

XML is waarschijnlijk de beste manier om de informatie over het nummer te verwerken, maar helaas is er op dit moment geen native XML API in Corona. Hoewel je nog steeds enkele Lua-bibliotheken zoals LuaXML kunt gebruiken, zal het sneller zijn om een ​​tabel voor korte inhoud te maken zoals getoond in de volgende regels:

 -- URL, Naam, Artiest, Art local song1Info = 'song1.m4a', 'Here Without You', '3 Doors Down', 's1.png' local song2Info = 'song2.m4a', 'Kriptonite', ' 3 Doors Down ',' s2.png ' local songsInfo = song1Info, song2Info local song1 = audio.loadStream (song1Info [1]) local song2 = audio.loadStream (song2Info [1]) lokale nummers = song1, song2 

Zoals je in de bovenstaande code kunt zien, worden tabellen gebruikt om de liedjesinformatie op te slaan, die later door de audio.loadStream () methode om een ​​audio streming-object te maken.


Stap 16: Code Review

Hier is de volledige code die in deze zelfstudie is geschreven, samen met opmerkingen om u te helpen bij het identificeren van elk onderdeel:

 -- Audio Player - Ontwikkeld door Carlos Yanez - Verberg statusbalk display.setStatusBar (display.HiddenStatusBar) - Graphics - [achtergrond] local bg - [Info Bar] lokale infoBar lokale voortgangBar lokale voortgang - [Image Marker] lokaal imageMarker local cdCover - [Info Bar Text] lokale titelTekst local byText local artistText - [Button Bar Bg] local buttonBar - [Buttons] local playBtn local stopBtn local prevBtn local nextBtn - [Button Bar Text] lokaal huidig ​​lokaal totaal - - [Songs] - URL, Naam, Artiest, Art local song1Info = 'song1.m4a', 'Here Without You', '3 Doors Down', 's1.png' local song2Info = 'song2.m4a' , 'Kriptonite', '3 Doors Down', 's2.png' local songsInfo = song1Info, song2Info local song1 = audio.loadStream (song1Info [1]) local song2 = audio.loadStream (song2Info [1]) lokaal nummers = song1, song2

De volgende keer?

In dit deel van de serie hebt u de interface en de basisinstellingen van de toepassing geleerd. Houd ons in de gaten voor deel twee, waar we de logica van de applicatie, het gedrag van knoppen en meer zullen behandelen. Tot de volgende keer!