2016-06-24 99 views
0

我是初学者,刚开始使用android。我正在尝试完成一些操作。所以我通过MediaPlayer对象调用了一个setOnCompletionListener。但是错误发生说不能解析符号setOnCompletionListener。 请帮我解决这个问题。无法解析符号MediaPlayer.setOnCompletionListener

这里,是代码封装

package com.example.jay_mainframe.justjava; 

import android.media.MediaPlayer; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 
    MediaPlayer mp; 
    Button btn; 
    boolean flag=true; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mp = MediaPlayer.create(this, R.raw.birthday); 
     btn=(Button)findViewById(R.id.play_btn); 

    } 

    public void playMusic(View view){ 
     if (flag) { 
      mp.start(); 
      btn.setText("Pause Me"); 
      flag=false; 
     } 
     else { 
      mp.pause(); 
      btn.setText("Play me"); 
      flag = true; 
     } 

    } 

    mp.setOnCompletionListener(new OnCompletionListener() { 
     @Override 
     public void onCompletion(MediaPlayer mp) { 
      //Do the work after completion of audio 
     } 
    }); 

} 

`

+0

你有一个标准的Java编译错误,它与Android几乎没有任何关系 –

回答

1

错误的范围。 代码:

mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mp) { 
     //Do the work after completion of audio 
    } 
}); 

应该是内部onCreate方法。或者只在一个函数内部,而不是在课堂内部。