【问题标题】:Audio file does not play when I use it inside a function当我在函数中使用音频文件时不播放
【发布时间】:2014-02-27 10:20:20
【问题描述】:

我正在创建一个需要在按下按钮时播放音频的 Android 应用。但它不播放音乐,尽管其余代码功能。此外,上下文有一个错误,表示上下文无法解析为变量。

这是我的主要活动

public class BroadcastNewSms extends Activity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.androidexample_broadcast_newsms);
        Button b1;
        b1 = (Button) findViewById(R.id.button1);

        b1.setOnClickListener(new OnClickListener()

        {



        public void onClick(View v)

        {



            MediaPlayer mp;
            mp = MediaPlayer.create(context,R.raw.hospital_alarm);

            mp.start();

             String phoneNumber = "+9198zxxxxxxx";

            String message = "Ambulance sent!";



            SmsManager smsManager = SmsManager.getDefault();

            smsManager.sendTextMessage(phoneNumber, null, message, null, null);



        }
        });




    }
}

【问题讨论】:

    标签: android eclipse button android-mediaplayer android-context


    【解决方案1】:

    context代替getApplicationContext()方法

    public class BroadcastNewSms extends Activity 
    {
        @Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.androidexample_broadcast_newsms);
            Button b1;
            b1 = (Button) findViewById(R.id.button1);
            b1.setOnClickListener(new OnClickListener()
            {
                public void onClick(View v)
                {
                    MediaPlayer mp;
                    mp = MediaPlayer.create(getApplicationContext(),R.raw.hospital_alarm);
                    mp.start();
                    String phoneNumber = "+9198989898";    
                    String message = "Ambulance sent!";
                    SmsManager smsManager = SmsManager.getDefault();
                    smsManager.sendTextMessage(phoneNumber, null, message, null, null);
                }
            });
        }
    }
    

    【讨论】:

      【解决方案2】:

      在这里查看How to play the audio files directly from res/raw folder?

      int resID=context.getResources().getIdentifier(Name_of_file, "raw", getPackageName());
      MediaPlayer mediaPlayer=MediaPlayer.create(this,resID);
      mediaPlayer.start();
      

      【讨论】:

        猜你喜欢
        • 2017-08-08
        • 2019-04-07
        • 2012-07-31
        • 1970-01-01
        • 2020-02-11
        • 2017-08-27
        • 2021-05-19
        • 1970-01-01
        • 2021-06-05
        相关资源
        最近更新 更多