簡體   English   中英

在Android App上播放MP3文件?

[英]Playing MP3 files on an Android App?

我嘗試了許多不同的方法,但是似乎沒有一個起作用。 此方法沒有錯誤,但不執行任何操作。 我將所有聲音放在主項目下的子目錄中。 我嘗試過的大多數代碼都是使用MediaPlayer和SoundPooling之類的不同方法。 他們都沒有為我工作,所以我嘗試了這個。 如果有人可以為我更正此問題或讓我上教程,那將很棒。

package me.javoris767.twds2soundboard;

import java.io.IOException;

import me.javoris767.twds2soundboard.R;
import android.view.View;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.media.MediaPlayer;
import android.os.Bundle;


public class ClementinePage extends Activity {
MediaPlayer mp=new MediaPlayer();   
public boolean isPlaying;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_clementine_page);

}

public void playSound(String file) {
    AssetFileDescriptor afd = null;
    try {
        afd = getAssets().openFd(file);
        MediaPlayer player = new MediaPlayer();
        player.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(),
                afd.getLength());

        player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            public void onPrepared(MediaPlayer p1) {
                p1.start();
                isPlaying = true;
            }
        });
}catch (IOException e) {
    e.printStackTrace();
    }
}

public void onNoClick(View v) {
    playSound("sounds/ohno.mp3");
}
}

做這樣的事情

//initialising the two new buttons
    final Button btSong1 = (Button)findViewById(R.id.btnPlaySong1);
    final Button btSong2 = (Button)findViewById(R.id.btnPlaySong2);

    //initialising the two new media player instances
    song1 = new MediaPlayer();
    song1 = MediaPlayer.create(this, R.raw.song3);

    song2 = new MediaPlayer();
    song2 = MediaPlayer.create(this, R.raw.song4);



    //The code for the two buttons go here

    btSong1.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
        //This is where your code will go
            switch(stateOfPlaying){
            case 0: 
                song1.start();
                stateOfPlaying = 1;
                btSong1.setText("Pause Song 1");
                btSong2.setVisibility(View.INVISIBLE);


                break;
            case 1:
                song1.pause();
                stateOfPlaying = 0;
                btSong1.setText("Play Song 1");
                btSong2.setVisibility(View.VISIBLE);
                break;
            }//switch

        }//end of onClick
    });//btSong1

    btSong2.setOnClickListener(new OnClickListener(){
        public void onClick(View v){
        //This is where your code will go
            switch(stateOfPlaying){
            case 0: 
                song2.start();
                stateOfPlaying = 1;
                btSong2.setText("Pause Song 2");
                btSong1.setVisibility(View.INVISIBLE);



                break;
            case 1:
                song2.pause();
                stateOfPlaying = 0;
                btSong2.setText("Play Song 2");
                btSong1.setVisibility(View.VISIBLE);
                break;
            }//switch   

        }//end of onClick
    });//btSong2

我建議不要在Android中使用MP3文件,因為它似乎可以更好地處理OGG文件。 你能做這個嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM