cor*_*rvo 5 java android android-mediaplayer
我尝试通过不断更改文本视图的文本并将其设置为 mediaPlayer.getCurrentPosition() 来在播放歌曲时查看时间。但是当我在设备上运行时,应用程序打开但没有响应。这是安装后的logcat。
**6-23 18:16:20.751 21850-21850/com.nitescorp.myapplication W/System: ClassLoader referenced unknown path: /data/app/com.nitescorp.myapplication-2/lib/arm64
06-23 18:16:20.754 21850-21850/com.nitescorp.myapplication I/InstantRun: starting instant run server: is main process
06-23 18:16:20.757 21850-21850/com.nitescorp.myapplication I/ActivityThreadEui: Handling launch of ActivityRecord{1cfdf61 token=android.os.BinderProxy@be10f47 {com.nitescorp.myapplication/com.nitescorp.myapplication.MainActivity}} startsNotResumed=false
06-23 18:16:21.039 21850-21850/com.nitescorp.myapplication E/ExtMediaPlayer-JNI: env->IsInstanceOf fails
06-23 18:16:21.039 21850-21850/com.nitescorp.myapplication E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
06-23 18:16:21.039 21850-21850/com.nitescorp.myapplication E/ExtMediaPlayer-JNI: env->IsInstanceOf fails
06-23 18:16:21.039 21850-21850/com.nitescorp.myapplication E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
06-23 18:16:21.142 21850-21920/com.nitescorp.myapplication I/Adreno: QUALCOMM build : 7a841e6, I43097da1fb
Build Date : 05/10/16
OpenGL ES Shader Compiler Version: XE031.06.00.02
Local Branch : mybranch19687176
Remote Branch : quic/LA.BR.1.3.3.c4
Remote Branch : NONE
Reconstruct Branch : NOTHING
06-23 18:16:21.146 21850-21920/com.nitescorp.myapplication I/OpenGLRenderer: Initialized EGL, version 1.4
06-23 18:16:27.897 21850-21850/com.nitescorp.myapplication I/ViewRootImpl: finishMotionEvent: handled = false stage=11: Synthetic input stage,inputElapseTime=1 eventTime = 217132137 downTime = 217132137 title= com.nitescorp.myapplication/com.nitescorp.myapplication.MainActivity
06-23 18:21:25.725 21850-21850/com.nitescorp.myapplication I/ViewRootImpl: finishMotionEvent: handled = false stage=11: Synthetic input stage,inputElapseTime=2 eventTime = 217429055 downTime = 217429055 title= com.nitescorp.myapplication/com.nitescorp.myapplication.MainActivity**
Run Code Online (Sandbox Code Playgroud)
这是java代码
import android.content.Context;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.View.*;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
public Context context = MainActivity.this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.lovemelikeyoudo);
OnClickListener onClickListenerPlay = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.start();
TextView current = (TextView)findViewById(R.id.current_time);
current.setVisibility(View.VISIBLE);
TextView of = (TextView)findViewById(R.id.of);
of.setVisibility(View.VISIBLE);
TextView total = (TextView)findViewById(R.id.total_length);
current.setVisibility(View.VISIBLE);
total.setText( String.valueOf(mediaPlayer.getDuration()) );
showTime(mediaPlayer);
}
};
OnClickListener onClickListenerPause = new OnClickListener() {
@Override
public void onClick(View v) {
mediaPlayer.pause();
}
};
Button play = (Button)findViewById(R.id.play);
play.setOnClickListener( onClickListenerPlay);
Button pause = (Button)findViewById(R.id.pause);
pause.setOnClickListener(onClickListenerPause);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mediaPlayer) {
Context context = getApplicationContext();
CharSequence text = "The song is finished";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context, text, duration);
toast.show();
LinearLayout showTime = (LinearLayout)findViewById(R.id.time_view);
showTime.setVisibility(View.GONE);
}
});
}
public void showTime(MediaPlayer mediaPlayer){
while (mediaPlayer.isPlaying()){
TextView current = (TextView)findViewById(R.id.current_time);
current.setText(String.valueOf(mediaPlayer.getCurrentPosition()) );
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题出在 showTime 方法上,当我评论说应用程序没有显示这些错误时
public void showTime(MediaPlayer mediaPlayer){
while (mediaPlayer.isPlaying()){
TextView current = (TextView)findViewById(R.id.current_time);
current.setText(String.valueOf(mediaPlayer.getCurrentPosition()) );
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3849 次 |
| 最近记录: |