Android Media Player Song mit SeekBar

Einführung

Die Musikwiedergabe auf Android-Geräten ist eine weitverbreitete und beliebte Funktion. Um das Hörerlebnis zu verbessern, ist ein Media Player mit einer SeekBar von Vorteil. Die SeekBar ermöglicht es Benutzern, durch das Audio zu navigieren und bestimmte Stellen im Song anzuspringen. Dieser Artikel zeigt, wie man einen Android Media Player mit einer SeekBar realisiert.

Notwendige Werkzeuge und Kenntnisse

Für die Umsetzung benötigen Sie:

  • Android Studio
  • Ein Android-Gerät oder einen Emulator

Schritte zur Implementierung

Schritt 1: Erstellung eines neuen Android Projekts

  • Starten Sie Android Studio und initiieren Sie ein neues Android-Projekt.
  • Wählen Sie „Leere Aktivität“ als Vorlage.
  • Geben Sie dem Projekt und dem Paket einen passenden Namen.

Schritt 2: Hinzufügen der erforderlichen Berechtigungen

Für den Zugriff auf lokale Dateien ist die folgende Berechtigung notwendig:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Fügen Sie diese Berechtigung in die Manifestdatei (AndroidManifest.xml) Ihres Projekts ein.

Schritt 3: Erstellung des Layouts

Erstellen Sie ein neues XML-Layout (activity_main.xml) und fügen Sie folgende Elemente hinzu:


<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <TextView
        android:id="@+id/song_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Songtitel"
        android:textSize="18sp" />

    <SeekBar
        android:id="@+id/seek_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100" />

    <Button
        android:id="@+id/play_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Abspielen" />

    <Button
        android:id="@+id/pause_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pause" />

</LinearLayout>

Schritt 4: Erstellung der Java-Klasse (MainActivity.java)

Erstellen Sie eine neue Java-Datei (MainActivity.java) mit folgendem Inhalt:


import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.TextView;

public class MainActivity extends Activity implements SeekBar.OnSeekBarChangeListener {

    private TextView songTitle;
    private SeekBar seekBar;
    private Button playButton;
    private Button pauseButton;

    private MediaPlayer mediaPlayer;

    private Handler handler = new Handler();

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

        songTitle = findViewById(R.id.song_title);
        seekBar = findViewById(R.id.seek_bar);
        playButton = findViewById(R.id.play_button);
        pauseButton = findViewById(R.id.pause_button);

        if (checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
        }

        mediaPlayer = MediaPlayer.create(this, R.raw.song); // Ersetzen Sie "song" durch den Namen Ihrer Audiodatei

        songTitle.setText(mediaPlayer.getTrackName());

        seekBar.setMax(mediaPlayer.getDuration());

        seekBar.setProgress(0);

        seekBar.setOnSeekBarChangeListener(this);

        playButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mediaPlayer.start();
            }
        });

        pauseButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mediaPlayer.pause();
            }
        });
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        if (fromUser) {
            mediaPlayer.seekTo(progress);
        }
    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        mediaPlayer.pause();
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        mediaPlayer.start();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer != null) {
            mediaPlayer.release();
        }
    }
}

Ausführung der Anwendung

  • Verbinden Sie Ihr Android-Gerät oder den Emulator mit Android Studio.
  • Klicken Sie auf die Schaltfläche „Ausführen“ in Android Studio.

Zusammenfassung

Dieser Artikel hat die Implementierung eines Android Media Players mit einer SeekBar erläutert. Die SeekBar ermöglicht das Navigieren im Song und sorgt so für ein benutzerfreundlicheres Musikerlebnis. Mithilfe der hier beschriebenen Schritte können Sie Ihren eigenen Android Mediaplayer mit SeekBar erstellen und Ihren Benutzern verbesserte Wiedergabefunktionen bieten.

FAQ

Wie kann ich die Farbe der SeekBar anpassen?
Verwenden Sie die Eigenschaft ‚android:progressDrawable‘ in der XML-Layoutdatei.

Wie kann man den Fortschritt der SeekBar animieren?
Nutzen Sie die Handler-Klasse, um den Fortschritt schrittweise zu aktualisieren.

Wie verwende ich die SeekBar für mehrere Songs?
Verwalten Sie eine Liste von Songs und verwenden Sie die SeekBar, um zwischen den Titeln zu wechseln.

Wie kann ich die Position der SeekBar anpassen?
Passen Sie die Eigenschaften ‚android:layout_width‘ und ‚android:layout_height‘ im XML-Layout an.

Wie ändere ich das Format der Zeitangabe?
Verwenden Sie eine benutzerdefinierte Formatter-Klasse.

Wie ändere ich die Größe des SeekBar-Handles?
Ändern Sie die Eigenschaft ‚android:thumb‘ in der XML-Layoutdatei.

Wie richte ich die SeekBar horizontal aus?
Setzen Sie ‚android:orientation‘ im XML-Layout auf ‚horizontal‘.

Wie kann ich die SeekBar schreibgeschützt machen?
Setzen Sie die Eigenschaft ‚android:enabled‘ auf ‚false‘.

Wie kann die SeekBar nur für einen bestimmten Bereich des Audios verwendet werden?
Verwenden Sie die Methoden ’setMin()‘ und ’setMax()‘.

Wie kann ich verhindern, dass …