現在、フラグメントが画面遷移した後、自動的にビデオの録画を開始するアプリを作っています。
以前はボタンをクリックしたときにON、OFFが切り替え録画をしていました。
java
1public void onViewCreated(final View view, Bundle savedInstanceState) { 2 //Viewリソースの指定 3 ViewCompat.setNestedScrollingEnabled(,true); 4 mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture); 5 //RYUKA ADD 6 //撮影ボタン 7 bt_start = view.findViewById(R.id.bt_start); 8 9 bt_start.setOnClickListener(new View.OnClickListener() { 10 @Override 11 public void onClick(View view) { 12 if (flg) { 13 flg = false; 14 //撮影を終了する 15 stopRecordingVideo(); 16 bt_start.setText("START"); 17 } else { 18 flg = true; 19 //撮影を終了する 20 startRecordingVideo(); 21 bt_start.setText("STOP"); 22 ; 23 } 24 } 25 });
今回画面遷移の際に遷移前からの値を条件に自動的に録画を始める仕様に変更したくコーディングしました。
java
1public void onViewCreated(final View view, Bundle savedInstanceState) { 2 mTextureView = (AutoFitTextureView) view.findViewById(R.id.texture); 3 mlet = getArguments().getInt("KEY_NAME"); 4 bt_start = view.findViewById(R.id.bt_start); 5 if(mlet == 1) { 6 (view.findViewById(R.id.bt_start)).setEnabled(true); 7 //↓ここの処理について 8 **__startRecordingVideo();__** 9 //↑ここの処理について 10 bt_start.setOnClickListener(new View.OnClickListener() { 11 @Override 12 public void onClick(View view) { 13 stopRecordingVideo(); 14 } 15 }); 16 }else{ 17 (view.findViewById(R.id.bt_start)).setEnabled(false); 18 } 19 }
上記の処理を行いたいのですが、画面遷移時にエラーが出てしまいました。
※遷移時ではなくボタンを押したときでした。
プログラミング歴が浅く、浅はかな推測で大変お恥ずかしいのですが
public void ○○(View view)関係の原因だと考えています。
お手数ですが、原因と対策方法を教えていただければ幸いです。
よろしくお願いいたします。
発生している問題・エラーメッセージ
D/AudioTrack: stop(sessionID=73465) E/MediaRecorder: stop called in an invalid state: 1 D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.myapplication, PID: 16982 java.lang.IllegalStateException at android.media.MediaRecorder.stop(Native Method) at com.example.myapplication.video.VideoFragment.stopRecordingVideo(VideoFragment.java:519) at com.example.myapplication.video.VideoFragment$3.onClick(VideoFragment.java:199) at android.view.View.performClick(View.java:7252) at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:992) at android.view.View.performClickInternal(View.java:7229) at android.view.View.access$3500(View.java:821) at android.view.View$PerformClick.run(View.java:27759) at android.os.Handler.handleCallback(Handler.java:914) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:7560) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) I/Process: Sending signal. PID: 16982 SIG: 9
回答1件
あなたの回答
tips
プレビュー