| | package org.ntlab.amaryllis.client; |
---|
| | |
---|
| | import androidx.annotation.RequiresApi; |
---|
| | import androidx.appcompat.app.AppCompatActivity; |
---|
| | import androidx.annotation.Nullable; |
---|
| | import androidx.fragment.app.Fragment; |
---|
| | |
---|
| | |
---|
| | import android.media.MediaPlayer; |
---|
| | import android.media.MediaRecorder; |
---|
| | import android.os.Build; |
---|
| | import android.os.Bundle; |
---|
| | |
---|
| | import android.app.FragmentManager; |
---|
| | import android.util.Log; |
---|
| | import android.view.LayoutInflater; |
---|
| | import android.os.Environment; |
---|
| | import android.view.View; |
---|
| | import android.view.ViewGroup; |
---|
| |
---|
| | import android.widget.ImageView; |
---|
| | import android.widget.SeekBar; |
---|
| | import android.widget.TextView; |
---|
| | |
---|
| | import org.ntlab.amaryllis.client.entities.Voicememo; |
---|
| | import org.ntlab.amaryllis.client.resources.AccountsRest; |
---|
| | |
---|
| | import java.io.File; |
---|
| | |
---|
| | import java.io.*; |
---|
| | import android.media.*; |
---|
| | import java.io.FileInputStream;// |
---|
| | |
---|
| | import java.nio.charset.Charset; |
---|
| | import java.nio.charset.StandardCharsets; |
---|
| | import android.util.Base64; |
---|
| | |
---|
| | import retrofit2.Retrofit; |
---|
| | import retrofit2.converter.jackson.JacksonConverterFactory; |
---|
| | |
---|
| | |
---|
| | public class VoiceActivity extends AppCompatActivity { |
---|
| | |
---|
| | private MediaRecorder mr; |
---|
| | private MediaPlayer mp; |
---|
| | static final String filePath = Environment.getExternalStorageDirectory() + "/app/res/raw"; |
---|
| | // static final String filePath = Environment.getExternalStorageDirectory() + "/app/res/raw"; |
---|
| | private int totalTime; |
---|
| | private SeekBar positionBar; |
---|
| | private TextView elapsedTimeLabel; |
---|
| | private TextView remainingTimeLabel; |
---|
| | private int StartChange = 1; |
---|
| | File file; |
---|
| | |
---|
| | byte[] buff; |
---|
| | String moji; |
---|
| | |
---|
| | private byte[] byteData = new byte[4096]; |
---|
| | private short[] shortData = new short[2048]; |
---|
| | private int bufSize; |
---|
| | |
---|
| | private FileInputStream in; // ファイル読み込み用 |
---|
| | |
---|
| | @RequiresApi(api = Build.VERSION_CODES.O) |
---|
| | @Override |
---|
| | protected void onCreate(Bundle savedInstanceState) { |
---|
| | super.onCreate(savedInstanceState); |
---|
| | setContentView(R.layout.fragment_maps); |
---|
| | |
---|
| | Retrofit retrofit = new Retrofit.Builder() |
---|
| | .baseUrl("http://nitta-lab-www.is.konan-u.ac.jp/amaryllis/") |
---|
| | .addConverterFactory(JacksonConverterFactory.create()) |
---|
| | .build(); |
---|
| | final AccountsRest signUpService = retrofit.create(AccountsRest.class); |
---|
| | Amaryllis amaryllis =(Amaryllis) getApplication(); |
---|
| | String uid = amaryllis.getUid(); |
---|
| | String passWord = amaryllis.getPassword(); |
---|
| | |
---|
| | //setContentView(R.layout.activity_voice); |
---|
| | file = new File(getFilesDir(),"Sample.3gp"); |
---|
| | mp = new MediaPlayer(); |
---|
| | |
---|
| |
---|
| | //textView1.setText("Playback Start!"); |
---|
| | startPlay(); |
---|
| | } |
---|
| | }); |
---|
| | |
---|
| | // String enc = Base64.encodeToString(file, 0, file.length, Base64.VoicememosRest); |
---|
| | //byte[]a = Base64.getEncoder().encode(moji.getBytes(charset)); |
---|
| | |
---|
| | |
---|
| | } |
---|
| | |
---|
| | |
---|
| | //再生開始&再生中止 |
---|
| |
---|
| | }else { |
---|
| | try { |
---|
| | TextView textView1 = (TextView)findViewById(R.id.Notice); |
---|
| | textView1.setText("Record Start!"); |
---|
| | in = new FileInputStream(file); |
---|
| | mr = new MediaRecorder(); |
---|
| | mr.setAudioSource(MediaRecorder.AudioSource.MIC); |
---|
| | mr.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); |
---|
| | mr.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); |
---|
| | |
---|
| | mr.setOutputFile(file.getAbsolutePath()); |
---|
| | //mr.setOutputFile(filePath); |
---|
| | |
---|
| | in.read(byteData); |
---|
| | byte2short(shortData, byteData); |
---|
| | Base64.encodeToString(byteData, 0,byteData.length, Base64.DEFAULT); |
---|
| | |
---|
| | mr.prepare(); |
---|
| | mr.start(); |
---|
| | StartChange = 0; |
---|
| |
---|
| | e.printStackTrace(); |
---|
| | } |
---|
| | } |
---|
| | } |
---|
| | |
---|
| | |
---|
| | |
---|
| | |
---|
| | |
---|
| | |
---|
| | |
---|
| | |
---|
| |
---|
| | //}catch(Exception e){ |
---|
| | //e.printStackTrace(); |
---|
| | //} |
---|
| | //} |
---|
| | |
---|
| | |
---|
| | void byte2short(short data[], byte bdata[]){ |
---|
| | int i; |
---|
| | for(i = 0; i < bdata.length / 2; i++){ |
---|
| | // リトルエンディアン |
---|
| | data[i] = (short) ((short) bdata[2 * i] + (short) bdata[2 * i + 1] * 256); |
---|
| | } |
---|
| | } |
---|
| | |
---|
| | } |
---|
| | |
---|
| | |