diff --git a/app/src/main/java/org/ntlab/amaryllis/client/TestPlayActivity.java b/app/src/main/java/org/ntlab/amaryllis/client/TestPlayActivity.java new file mode 100644 index 0000000..70445b4 --- /dev/null +++ b/app/src/main/java/org/ntlab/amaryllis/client/TestPlayActivity.java @@ -0,0 +1,73 @@ +package org.ntlab.amaryllis.client; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.os.Bundle; +import android.os.IBinder; +import android.os.RemoteException; +import android.support.v4.media.MediaBrowserCompat; +import android.support.v4.media.MediaMetadataCompat; +import android.support.v4.media.session.MediaControllerCompat; +import android.support.v4.media.session.PlaybackStateCompat; +import android.view.View; +import android.widget.Button; +import android.widget.TextView; +import android.widget.Toast; + +import org.ntlab.amaryllis.client.entities.AmaryllisBackgroundService; +import org.ntlab.amaryllis.client.voiceservice.TestVoiceService; + +import java.io.IOException; +import java.util.List; + +public class TestPlayActivity extends AppCompatActivity { + MediaBrowserCompat mBrowser; + MediaControllerCompat mController; + Button button_play; + TextView textView_title; + TextView textView_position; + MediaPlayer mediaPlayer; + TestVoiceService myService; + Intent serviceIntent; + + ServiceConnection serviceConnection = new ServiceConnection(){ + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + myService = ((TestVoiceService.MyBinder)service).getService(); + //myService.setMessage("Hello, IBinder!"); + startService(serviceIntent); + } + + @Override + public void onServiceDisconnected(ComponentName name) { + + myService = null; + } + }; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_test_play); + + button_play=findViewById(R.id.button_play); + textView_title=findViewById(R.id.textView_title); + textView_position=findViewById(R.id.textView_position); + serviceIntent=new Intent( + getBaseContext(),TestVoiceService.class + ); + bindService(serviceIntent,serviceConnection, Context.BIND_AUTO_CREATE); + button_play.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + myService.play(); + } + }); + } +} \ No newline at end of file diff --git a/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/TestVoiceService.java b/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/TestVoiceService.java new file mode 100644 index 0000000..3ee70d7 --- /dev/null +++ b/app/src/main/java/org/ntlab/amaryllis/client/voiceservice/TestVoiceService.java @@ -0,0 +1,79 @@ +package org.ntlab.amaryllis.client.voiceservice; + +import android.annotation.SuppressLint; +import android.app.IntentService; +import android.content.Context; +import android.content.Intent; +import android.media.AudioManager; +import android.media.MediaPlayer; +import android.media.browse.MediaBrowser; +import android.net.Uri; +import android.os.Binder; +import android.os.Bundle; +import android.os.Handler; +import android.os.IBinder; +import android.service.media.MediaBrowserService; + +import android.util.Log; + + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.media2.exoplayer.external.ExoPlayer; + + +public class TestVoiceService extends IntentService { + final String TAG = TestVoiceService.class.getSimpleName();//ログ用タグ + final String ROOT_ID = "root";//クライアントに返すID onGetRoot / onLoadChildrenで使用 + Handler handler;//定期的に処理を回すためのHandler + private PlayListManager playListManager; + MediaPlayer mediaPlayer=new MediaPlayer(); + AudioManager am;//AudioFoucsを扱うためのManager + + int index = 0;//再生中のインデックス + final IBinder myBinder=new MyBinder(); + public class MyBinder extends Binder { + public TestVoiceService getService(){ + return TestVoiceService.this; + } + } + public TestVoiceService() { + super("TestVoiceService"); + System.out.println("START SERVICE"); + mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); + } + public IBinder onBind(Intent intent){ + Log.d(TAG,"onBind"); + return myBinder; + } + + public void play(){ + final String url = "http://nitta-lab-www.is.konan-u.ac.jp/data/c948c729-a516-4ca2-88f3-35c0f2d20dba.3gp"; + + try { + mediaPlayer.reset(); + mediaPlayer.setDataSource(url); + mediaPlayer.prepare(); + mediaPlayer.start(); + + + } catch (IOException e) { + e.printStackTrace(); + } + } + void onPlayEnd(){ + // playListManager.getUnplayed().get(0); + + } + + + + @Override + protected void onHandleIntent(@Nullable Intent intent) { + + } +} diff --git a/app/src/main/res/layout/activity_test_play.xml b/app/src/main/res/layout/activity_test_play.xml new file mode 100644 index 0000000..e360d07 --- /dev/null +++ b/app/src/main/res/layout/activity_test_play.xml @@ -0,0 +1,40 @@ + + + +