【问题标题】:Playing an audio file in Android's music player在 Android 的音乐播放器中播放音频文件
【发布时间】:2013-03-28 15:03:23
【问题描述】:

我的 Android 项目的原始文件夹中有一些音频文件。我希望通过 Android 的默认音乐播放器播放这些音频文件。有人可以分享一些示例代码 sn-p 来解释该过程。

【问题讨论】:

    标签: android


    【解决方案1】:
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
    
    Uri data = Uri.parse("file://"+Environment.getExternalStorageDirectory()
            .getAbsolutePath()+"/" + fileName);
    String type = "audio/mp3";
    intent.setDataAndType(data, type);
    startActivity(intent);
    

    fileName 是您在SDCard 上的音频名称。

    【讨论】:

    • 如果文件在项目的原始文件夹中怎么办?
    • 如果它们位于原始文件夹中,请指定该文件的路径,例如 fileName = "/com.package/data/media/audio/song.mp3"。或者路径是什么。
    • 我尝试了你的方法,但应用程序因“ActivityNotFoundException”而崩溃。没有找到处理意图的活动......
    • ActivityNotFoundException 不应出现使用此代码,其他或其他一些问题是 ActivityNotFoundException 的问题。
    • 好的,我的项目的包名称是“com.example.audio”,我的音频文件是 res->raw 文件夹中的“sound.mp3”...所以我使用文件路径作为“/ com.example.audio/res/raw/sound.mp3”。运行应用程序时...会出现一条 toast 消息...“播放器不支持这种类型的文件”
    【解决方案2】:

    首先声明MediaPlayer对象:

    MediaPlayer mSoundPlayer;
    

    添加此功能:

    //Play music
        public void playSound(int id){
                try{
                    mSoundPlayer = MediaPlayer.create(mContext, id);
                    mSoundPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                        @Override
                        public void onPrepared(MediaPlayer arg0) {
                            mSoundPlayer.start();
    
                        }
    
                    });
                    mSoundPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener () {
    
                        @Override
                        public void onCompletion(MediaPlayer mp) {
                            // TODO Auto-generated method stub
                            mSoundPlayer.release();
                        }});
                }
                catch (Exception e) {
                    // TODO: handle exception
                    Log.v("Sound Exception","Sound Exception = "+e.getMessage());
                }
        }
    

    用这个打电话:

    playSound(R.raw.sound1);
    

    发布MediaPlayer 将是一个好习惯:

        @Override
        public void onPause(){
            super.onPause();
            if(mSoundPlayer!=null)
                mSoundPlayer.release();
        }
    

    谢谢。

    【讨论】:

    • 我希望通过单击按钮,在 Android 的音乐播放器应用程序中启动音频文件。使用这个程序,它在后台运行,我必须创建播放/暂停/停止等按钮。
    • @user1951199 好的,我以为你想在后台播放。反正你的问题解决了吗?
    【解决方案3】:

    这里是示例代码 sn-p...

    For playing audio files in android

    Playing audio

    public void splashPlayer() {
     VideoView videoHolder = new VideoView(this);
     setContentView(videoHolder);
     Uri video = Uri.parse("android.resource://" + getPackageName() + "/"
        + R.raw.splash);
     videoHolder.setVideoURI(video);
     videoHolder.setOnCompletionListener(new OnCompletionListener() {
      public void onCompletion(MediaPlayer mp) {
       jumpMain(); //jump to the next Activity
      }
     });
     videoHolder.start();
    }
    

    如需完整教程,请前往this

    【讨论】:

      【解决方案4】:

      我试过这个代码:-

      button.setOnClickListener(new OnClickListener() 
      {
      
      @Override
      public void onClick(View v) 
      {
      Uri uri = Uri.parse("R.raw.fashion.mp3");//the audio file
      Intent intent = new Intent(Intent.ACTION_VIEW, uri);
      startActivity(intent); 
      
      }
      });
      

      但是当我运行这段代码时;应用程序崩溃,LogCat 显示:“ActivityNotFoundException”...未找到处理意图的活动。

      【讨论】:

        【解决方案5】:

        试试这个可能会有帮助。

        Uri data = Uri.parse("file://"+Environment.getExternalStorageDirectory()
                        .getAbsolutePath()+"/" + audioName);
                Intent intent = new Intent(android.content.Intent.ACTION_VIEW, data);
        
                String type = "audio/mp3";
                intent.setDataAndType(data, type);
                startActivity(intent);
        

        【讨论】:

        • 问题要求播放 res/raw 目录中的音频,而您正在使用外部存储来回答。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多