Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓:媒体的使用_Android - Fatal编程技术网

Android 安卓:媒体的使用

Android 安卓:媒体的使用,android,Android,我想使应用程序,让我的SD卡中的音频文件列表可用,然后我应该能够从我的应用程序播放该音频文件。甚至暂停恢复音频播放等功能 有什么帮助吗?你可以这样试试 class Mp3Filter implements FilenameFilter { public boolean accept(File dir, String name) { return (name.endsWith(".mp3")); } } public class AudioPlayer extends Li

我想使应用程序,让我的SD卡中的音频文件列表可用,然后我应该能够从我的应用程序播放该音频文件。甚至暂停恢复音频播放等功能


有什么帮助吗?

你可以这样试试

 class Mp3Filter implements FilenameFilter {
  public boolean accept(File dir, String name) {
    return (name.endsWith(".mp3"));
   }
 }

public class AudioPlayer extends ListActivity implements OnClickListener{

private static final String MEDIA_PATH = new String("/sdcard/backup/songs");
private List<String> songs = new ArrayList<String>();
private MediaPlayer mp = new MediaPlayer();
private int currentPosition = 0;
private static final String TAG = "Audio Player Demo ";
private static final String isPlaying = "Media is Playing"; 
private static final String notPlaying = "Media has stopped Playing"; 
Button playerButton;

public void onClick(View v) {
    if (v.getId() == R.id.play) {
        playPause();
    }
}

@Override
public void onCreate(Bundle icicle) {
    try {
        super.onCreate(icicle);
        setContentView(R.layout.songlist);
        playerButton = (Button) this.findViewById(R.id.play);
        playerButton.setText(R.string.stop_label);
        playerButton.setOnClickListener(this);          
        updateSongList();
        //demoPlay();
    } catch (NullPointerException e) {
        Log.v(getString(R.string.app_name), e.getMessage());
    }
}

public void updateSongList() {
    File home = new File(MEDIA_PATH);
    if (home.listFiles( new Mp3Filter()).length > 0) {
        for (File file : home.listFiles( new Mp3Filter())) {
            songs.add(file.getName());
        }       
        ArrayAdapter<String> songList = new ArrayAdapter<String>(this,R.layout.song_item,songs);
        setListAdapter(songList);
    }       
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {     
        currentPosition = position;
        playSong(MEDIA_PATH + songs.get(position));
}


  private void playSong(String songPath) {
      try {
       mp.reset();
       mp.setDataSource(songPath);
       mp.prepare();
       mp.start();
       // Setup listener so next song starts automatically
       mp.setOnCompletionListener(new OnCompletionListener() {
       public void onCompletion(MediaPlayer arg0) {
            nextSong();}
       }); 
    } catch(IOException e) {
        Log.v(getString(R.string.app_name), e.getMessage());
    } 

  }

  private void nextSong() {
    if (++currentPosition >= songs.size()) {
      // Last song, just reset currentPosition
      currentPosition = 0;
     // playSong(MEDIA_PATH + songs.get(currentPosition));
    } else {
     // Play next song
     playSong(MEDIA_PATH + songs.get(currentPosition));
    }  
  }

private void demoPause(){
    mp.pause();
    playerButton.setText(R.string.play_label);
    Toast.makeText(this, notPlaying, Toast.LENGTH_LONG).show();
    Log.d(TAG, notPlaying);
}

// Initiate playing the media player
private void demoPlay(){
    mp.start();
    playerButton.setText(R.string.stop_label);
    Toast.makeText(this, isPlaying, Toast.LENGTH_LONG).show();
    Log.d(TAG, isPlaying);
}

// Toggle between the play and pause
private void playPause() {
    if(mp.isPlaying()) {
        demoPause();
    } else {
        demoPlay();
    }   
}      
类Mp3Filter实现FilenameFilter{ 公共布尔接受(文件目录,字符串名称){ 返回(name.endsWith(“.mp3”); } } 公共类AudioPlayer扩展ListActivity实现OnClickListener{ 私有静态最终字符串MEDIA_PATH=新字符串(“/sdcard/backup/songs”); 私有列表歌曲=新建ArrayList(); 私有MediaPlayer mp=新MediaPlayer(); 私有int currentPosition=0; 私有静态最终字符串标记=“音频播放器演示”; 私有静态最终字符串isplay=“媒体正在播放”; 私有静态最终字符串notPlaying=“媒体已停止播放”; 按钮播放按钮; 公共void onClick(视图v){ 如果(v.getId()==R.id.play){ 播放暂停(); } } @凌驾 创建公共空间(捆绑冰柱){ 试一试{ 超级冰柱; setContentView(R.layout.songlist); playerButton=(按钮)this.findViewById(R.id.play); playerButton.setText(R.string.stop_标签); playerButton.setOnClickListener(这个); updateSongList(); //demoPlay(); }捕获(NullPointerException e){ Log.v(getString(R.string.app_name),e.getMessage()); } } public void updateSongList(){ 文件主目录=新文件(媒体路径); if(home.listFiles(新的Mp3Filter()).length>0){ 对于(文件:home.listFiles(新的Mp3Filter())){ songs.add(file.getName()); } ArrayAdapter歌曲列表=新的ArrayAdapter(此,R.layout.song_项,歌曲); setListAdapter(歌曲列表); } } @凌驾 受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){ 当前位置=位置; 播放歌曲(媒体路径+歌曲。获取(位置)); } 私有void playSong(String songPath){ 试一试{ mp.reset(); mp.setDataSource(songPath); mp.prepare(); mp.start(); //设置侦听器,使下一首歌自动开始 mp.setOnCompletionListener(新的OnCompletionListener(){ 完成时的公共作废(MediaPlayer arg0){ nextSong();} }); }捕获(IOE异常){ Log.v(getString(R.string.app_name),e.getMessage()); } } 私隐{ 如果(++currentPosition>=songs.size()){ //最后一首歌,只需重置当前位置 currentPosition=0; //播放歌曲(媒体路径+歌曲获取(当前位置)); }否则{ //播放下一首歌 播放歌曲(媒体路径+歌曲获取(当前位置)); } } 私有void demoPause(){ mp.pause(); playerButton.setText(R.string.play_标签); Toast.makeText(this,notPlaying,Toast.LENGTH_LONG).show(); Log.d(标记,不播放); } //开始播放媒体播放器 私人游戏{ mp.start(); playerButton.setText(R.string.stop_标签); Toast.makeText(this,isplay,Toast.LENGTH_LONG).show(); 日志d(标签、显示); } //在播放和暂停之间切换 私人空间暂停播放(){ if(mp.isPlaying()){ demoPause(); }否则{ demoPlay(); } }
}

您可以看到下面的URL流式音频代码

        private void playVideo() {
        try {
            final String path = "http://www.a1freesoundeffects.com/animals12557/catmeow.wav";              

            // If the path has not changed, just start the media player
            if (path.equals(current) && mp != null) {
                mp.start();
                return;
            }
            current = path;

            // Create a new media player and set the listeners
            mp = new MediaPlayer();             
            mp.setDataSource(path);
            mp.prepare();
            mp.setAudioStreamType(AudioManager.STREAM_MUSIC);


        } catch (Exception e) {
             if (mp != null) {
                mp.stop();
                mp.release();
            }
        }
    }

@谢谢你的回答。。。我想知道,如果我想补充这一点,我应该能够流媒体从互联网比我怎么能做到这一点???有什么想法吗???再次感谢我在下面添加了答案,如果您知道如何从我的android应用程序中找到DLNA设备列表,您也可以参考此链接了解更多信息??这样我就可以把媒体转移到那个设备上。。