2017-03-07 3 views
-1

Ich bin ein Noob in Android Studio und ich habe ein Soundboard mit über 300 Sounds erstellt. Gibt es eine Möglichkeit, die Sounds in die Firebase hochzuladen und sie dann aus dem Firebase abzuspielen?Meine Anwendung ist 150MB groß, wie kann ich das reduzieren?

Hier ist der Code mit nur 2 Sounds. Nur um zu zeigen, wie mein Soundboard funktioniert.

public class MainActivity extends AppCompatActivity{ 



    public MediaPlayer mp; 


    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
} 


    //plays sound 
    public void sound1(View view){ 
     cleanUpMediaPlayer(); 
     mp = MediaPlayer.create(this, R.raw.sound1); 
     mp.start(); 
    } 


    public void sound2(View view){ 
     cleanUpMediaPlayer(); 
     mp = MediaPlayer.create(this, R.raw.sound2); 
     mp.start(); 
    } 



    public void cleanUpMediaPlayer(){ 
     if(mp != null) { 
      if(mp.isPlaying()) { 
       try{ 
        mp.reset(); 
        mp.prepare(); 
        mp.stop(); 
        mp.release(); 
        mp = null; 
       }catch (Exception e){ 
        e.printStackTrace(); 
       } 
     } 
    } 
}} 

Und das mit 300 Sounds.

Kannst du mir erklären, wie man die Sounds in die Firebase legt (wenn das überhaupt möglich ist) und wie man sie aus dem Firebase herausspielt?

Sorry für meine schlechte Erfahrung und mein Englisch :)

+0

Sind Sie auf etwas wie Audio-Streaming (Siehe dieses [post] (http://stackoverflow.com/q/41315373/4625829))? Oder möchten Sie die Audiodateien einfach online hochladen? Sie können [Firebase-Speicher] (https://firebase.google.com/docs/storage/) verwenden. –

+0

Apk-Größe oder App-Datengröße? – sasikumar

+0

sollten Sie Ihre großen Dateien (Sounds) auf einem Webserver ablegen und sie von diesem Server abspielen. –

Antwort

1

Wie @AL im Kommentar vorgeschlagen, können Sie die Klänge in Firebase Speicher Host und jedes Mal, wenn Sie Ihre App einen Ton zu spielen braucht, können Sie auslösen eine Anfrage zum Herunterladen oder Streamen und Abspielen des Sounds.

Wenn diese Sounds jedoch die obligatorischen Ressourcen für eine oder mehrere Funktionen in Ihrer App sind und Sie möchten, dass Ihre App nach dem ersten Start der App offline nutzbar ist, würde ich vorschlagen, dass Sie diese Sounds als APK expansion file hochladen .

Google Play lädt normalerweise die Erweiterungsdateien gleichzeitig mit dem Herunterladen der APK. Sie müssen jedoch immer noch Ihre eigene Logik verwenden, um zu prüfen, ob die Datei heruntergeladen wurde. Ist dies nicht der Fall, laden Sie sie von einer URL herunter Sie erhalten eine Antwort vom Application Licensing-Dienst von Google Play, wenn Ihre App gestartet wird.

Die Gründe dafür müssen wir dies alle mal die App startet, weil überprüfen: kann

  1. Die Erweiterungsdatei, wenn sie nicht heruntergeladen werden heruntergeladen wird der APK.
  2. Die heruntergeladene Datei Expansion auf gemeinsam genutzten externen Speicher gespeichert ist (was bedeutet, dass der Benutzer zum Beispiel können auf diese Datei zugreifen und löschen usw.)

Die unten Spitze aus dem APK Expansion Files document besonders Ihrem Fall passen würde, wenn Sie die Klänge in eine APK-Erweiterungsdatei hochgeladen:

Wenn Sie Mediendateien in eine ZIP sind Verpackung, können Sie die Medienwiedergabe fordert die Dateien mit Offset- und Längen Kontrollen (wie MediaPlayer.setDataSource() und Soundpool verwenden .load()) ohne die ZIP entpacken zu müssen. Damit dies funktioniert, müssen Sie die Mediendateien beim Erstellen der ZIP-Pakete nicht zusätzlich komprimieren. Wenn zum Beispiel die Zip-Tool verwenden, sollten Sie die Option -n verwenden, um die Dateiendungen angeben, die nicht komprimiert werden soll: zip -n .mp4; Ogg main_expansion media_files

0

Sie laden können alle Dateien auf Firebase Storage mit Verwendung von Streaming API oder einem beliebigen Hosting-Server.

Dann, nachdem Sie es mit dem Einsatz von Mediaplayer

mediaPlayer = MediaPlayer.create(this, Uri.parse("http://vprbbc.streamguys.net:80/vprbbc24.mp3")); 
mediaPlayer.start(); 

Sie darüber sehen mehr spielen kann: https://stackoverflow.com/a/13740850/1318946

Hoffe, es wird Ihnen helfen, online zu spielen, und Sie werden app Größe verringert. :)

Verwandte Themen