Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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_Media Player - Fatal编程技术网

媒体文件播放完毕时的Android通知

媒体文件播放完毕时的Android通知,android,media-player,Android,Media Player,我有一个mediaplayer类,其中包含所有的方法。我只是想知道一个文件何时播放完毕,但我遇到了麻烦。 方法如下: public boolean isPlaying() { final boolean still_playing = true; mediaplayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompleti

我有一个mediaplayer类,其中包含所有的方法。我只是想知道一个文件何时播放完毕,但我遇到了麻烦。 方法如下:

public boolean isPlaying()
{
    final boolean still_playing = true;
    mediaplayer.setOnCompletionListener(new OnCompletionListener() 
    {
        @Override
        public void onCompletion(MediaPlayer mp) 
        {
            still_playing = false;
        }
    });
    return still_playing;
}
我遇到了一些错误,比如最终的局部变量无法赋值,因为它是在一个封闭类型中定义的,或者当我尝试其他方法时,我得到了VariableDeclaratorIndexpect 干杯

你最后的布尔值仍然在玩=真;是一个常量变量,这意味着它在运行时无法更改

在节目的后面:

@Override
public void onCompletion(MediaPlayer mp) 
{
    still_playing = false;
}
你试图改变它的价值

要解决这个问题,您应该定义布尔值still\u playing=true;作为类的成员变量,如sow:

public class classExample {
    // member variables
    private boolean still_playing = true;

    public boolean isPlaying() {

        /* I DELETED THE VARIABLE AND DECLARED IT OUTSIDE THE METHOD */

        mediaplayer.setOnCompletionListener(new OnCompletionListener() {
             @Override
             public void onCompletion(MediaPlayer mp) {

                  /* You could declare it here too without the private
                     keyword like this:
                             boolean still_playing = true; */

                  still_playing = false;
             }
        });
        return still_playing;
    }
}