zoukankan      html  css  js  c++  java
  • android中MediaPlayer类的用法

    用法直接看sample

    package com.turtle920.androidaudioprocess;
    
    import android.media.MediaPlayer;
    import android.os.Environment;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    
    import java.io.IOException;
    
    public class MainActivity extends AppCompatActivity {
    
        MediaPlayer mp = new MediaPlayer();
        float leftVol=0.5f, rightVol=0.5f;
        String song = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Music/tf.mp3";
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            try {
                mp.setDataSource(song);
                mp.prepare();
                mp.setVolume(leftVol,rightVol);
            } catch (Exception e) {
                Log.e("DEBUG", "" + e.toString());
                e.printStackTrace();
            }
    
            Button button1 = (Button) findViewById(R.id.button_start);
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mp.start();
                }
            });
    
            Button button2 = (Button) findViewById(R.id.button_pause);
            button2.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mp.pause();
                }
            });
    
            Button button3 = (Button) findViewById(R.id.button_replay);
            button3.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    mp.stop();
                    try {
                        mp.prepare();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            });
    
            Button button4 = (Button)findViewById(R.id.button_l);
            button4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (leftVol+0.05f<=1.0f) leftVol+=0.05f;
                    if (rightVol-0.05f>=0f) rightVol-=0.05f;
                    Log.e("DEBUG",""+leftVol+" "+rightVol);
                    mp.setVolume(leftVol, rightVol);
                }
            });
    
            Button button5 = (Button)findViewById(R.id.button_r);
            button5.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (leftVol-0.05f>=0f) leftVol-=0.05f;
                    if (rightVol+0.05f<=1.0f) rightVol+=0.05f;
                    Log.e("DEBUG",""+leftVol+" "+rightVol);
                    mp.setVolume(leftVol, rightVol);
                }
            });
    
        }
    }

    注意要在manifest里申明权限

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

    另外如果真机环境API 23+ 还需要在机子上给app读取SD卡得权限

  • 相关阅读:
    CHROME下去掉保存密码后输入框变成黄色背景样式
    AJAX请求遭遇未登录和Session失效的解决方案
    Oracle数据导入导出imp/exp
    缓存技术
    存储过程中引用的常规表,临时表以及表变量是否会导致存储过程的重编译
    给定一张表(列有月份,销售额),要求查询出月份、本月销售额、上月销售额这三个结果,如果当月上个月的销售额不存在就显示为“*”。
    tempdb 数据文件暴涨
    数据库还原成功之后,数据库依然处于还原状态
    CONVERT时间
    sql 2008 链接服务器到 sql 2000
  • 原文地址:https://www.cnblogs.com/turtle920/p/4949843.html
Copyright © 2011-2022 走看看