use ringtone instead of mediaplayer to play ringtone
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
package com.tutpro.baresip
|
package com.tutpro.baresip
|
||||||
|
|
||||||
import android.app.Notification
|
|
||||||
import android.app.Notification.VISIBILITY_PUBLIC
|
import android.app.Notification.VISIBILITY_PUBLIC
|
||||||
import android.app.NotificationManager
|
import android.app.NotificationManager
|
||||||
import android.app.PendingIntent
|
import android.app.PendingIntent
|
||||||
@@ -9,7 +8,6 @@ import android.content.BroadcastReceiver
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.IntentFilter
|
import android.content.IntentFilter
|
||||||
import android.media.MediaPlayer
|
|
||||||
import android.net.NetworkInfo
|
import android.net.NetworkInfo
|
||||||
import android.net.wifi.WifiManager
|
import android.net.wifi.WifiManager
|
||||||
import android.os.IBinder
|
import android.os.IBinder
|
||||||
@@ -23,7 +21,6 @@ import java.io.File
|
|||||||
import java.io.FileInputStream
|
import java.io.FileInputStream
|
||||||
import java.io.ObjectInputStream
|
import java.io.ObjectInputStream
|
||||||
import android.support.v4.content.LocalBroadcastManager
|
import android.support.v4.content.LocalBroadcastManager
|
||||||
import android.media.RingtoneManager
|
|
||||||
|
|
||||||
class BaresipService: Service() {
|
class BaresipService: Service() {
|
||||||
|
|
||||||
@@ -37,7 +34,6 @@ class BaresipService: Service() {
|
|||||||
internal lateinit var nr: BroadcastReceiver
|
internal lateinit var nr: BroadcastReceiver
|
||||||
internal lateinit var wl: PowerManager.WakeLock
|
internal lateinit var wl: PowerManager.WakeLock
|
||||||
internal lateinit var fl: WifiManager.WifiLock
|
internal lateinit var fl: WifiManager.WifiLock
|
||||||
internal lateinit var mp: MediaPlayer
|
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
|
|
||||||
@@ -71,11 +67,6 @@ class BaresipService: Service() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val uri = RingtoneManager
|
|
||||||
.getActualDefaultRingtoneUri(applicationContext, RingtoneManager.TYPE_RINGTONE)
|
|
||||||
mp = MediaPlayer.create(getApplicationContext(), uri)
|
|
||||||
mp.isLooping = true
|
|
||||||
|
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -253,7 +244,6 @@ class BaresipService: Service() {
|
|||||||
snb.setContent(view)
|
snb.setContent(view)
|
||||||
nm.notify(STATUS_NOTIFICATION_ID, snb.build())
|
nm.notify(STATUS_NOTIFICATION_ID, snb.build())
|
||||||
}
|
}
|
||||||
mp.start()
|
|
||||||
/* if (!Utils.isVisible()) {
|
/* if (!Utils.isVisible()) {
|
||||||
nm.cancel(STATUS_NOTIFICATION_ID)
|
nm.cancel(STATUS_NOTIFICATION_ID)
|
||||||
val cnb = NotificationCompat.Builder(this)
|
val cnb = NotificationCompat.Builder(this)
|
||||||
@@ -295,7 +285,6 @@ class BaresipService: Service() {
|
|||||||
snb.setContent(view)
|
snb.setContent(view)
|
||||||
snb.setVibrate(null)
|
snb.setVibrate(null)
|
||||||
nm.notify(STATUS_NOTIFICATION_ID, snb.build())
|
nm.notify(STATUS_NOTIFICATION_ID, snb.build())
|
||||||
mp.stop()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ import android.content.IntentFilter
|
|||||||
import android.content.pm.PackageManager
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.media.AudioManager
|
import android.media.AudioManager
|
||||||
|
import android.media.Ringtone
|
||||||
|
import android.media.RingtoneManager
|
||||||
import android.support.v4.content.LocalBroadcastManager
|
import android.support.v4.content.LocalBroadcastManager
|
||||||
import android.support.v7.view.menu.ActionMenuItemView
|
import android.support.v7.view.menu.ActionMenuItemView
|
||||||
import android.view.inputmethod.InputMethodManager
|
import android.view.inputmethod.InputMethodManager
|
||||||
@@ -26,6 +28,7 @@ import android.widget.RelativeLayout.LayoutParams
|
|||||||
import android.widget.RelativeLayout
|
import android.widget.RelativeLayout
|
||||||
import android.widget.*
|
import android.widget.*
|
||||||
import android.view.*
|
import android.view.*
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity() {
|
class MainActivity : AppCompatActivity() {
|
||||||
|
|
||||||
@@ -41,6 +44,8 @@ class MainActivity : AppCompatActivity() {
|
|||||||
internal lateinit var uaAdapter: UaSpinnerAdapter
|
internal lateinit var uaAdapter: UaSpinnerAdapter
|
||||||
internal lateinit var aorSpinner: Spinner
|
internal lateinit var aorSpinner: Spinner
|
||||||
internal lateinit var am: AudioManager
|
internal lateinit var am: AudioManager
|
||||||
|
internal lateinit var rt: Ringtone
|
||||||
|
internal var rtTimer: Timer? = null
|
||||||
internal lateinit var imm: InputMethodManager
|
internal lateinit var imm: InputMethodManager
|
||||||
internal lateinit var nm: NotificationManager
|
internal lateinit var nm: NotificationManager
|
||||||
internal lateinit var serviceEventReceiver: BroadcastReceiver
|
internal lateinit var serviceEventReceiver: BroadcastReceiver
|
||||||
@@ -69,6 +74,9 @@ class MainActivity : AppCompatActivity() {
|
|||||||
dtmf = findViewById(R.id.dtmf) as EditText
|
dtmf = findViewById(R.id.dtmf) as EditText
|
||||||
|
|
||||||
am = getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
am = getSystemService(Context.AUDIO_SERVICE) as AudioManager
|
||||||
|
val rtUri = RingtoneManager.getActualDefaultRingtoneUri(applicationContext,
|
||||||
|
RingtoneManager.TYPE_RINGTONE)
|
||||||
|
rt = RingtoneManager.getRingtone(applicationContext, rtUri)
|
||||||
imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
|
||||||
nm = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
|
nm = getSystemService(NOTIFICATION_SERVICE) as NotificationManager
|
||||||
|
|
||||||
@@ -325,6 +333,15 @@ class MainActivity : AppCompatActivity() {
|
|||||||
else
|
else
|
||||||
addCallViews(ua, new_call, Call.uaCalls(calls, ua, "in").size * 10)
|
addCallViews(ua, new_call, Call.uaCalls(calls, ua, "in").size * 10)
|
||||||
am.mode = AudioManager.MODE_RINGTONE
|
am.mode = AudioManager.MODE_RINGTONE
|
||||||
|
rt.play()
|
||||||
|
rtTimer = Timer()
|
||||||
|
rtTimer!!.scheduleAtFixedRate(object : TimerTask() {
|
||||||
|
override fun run() {
|
||||||
|
if (!rt.isPlaying()) {
|
||||||
|
rt.play()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 1000 * 1, 1000 * 1)
|
||||||
if (Utils.isVisible()) {
|
if (Utils.isVisible()) {
|
||||||
Log.d("Baresip", "Baresip is visible")
|
Log.d("Baresip", "Baresip is visible")
|
||||||
val i = Intent(applicationContext, MainActivity::class.java)
|
val i = Intent(applicationContext, MainActivity::class.java)
|
||||||
@@ -385,6 +402,11 @@ class MainActivity : AppCompatActivity() {
|
|||||||
history.add(History(aor, call.peerURI, "in", true))
|
history.add(History(aor, call.peerURI, "in", true))
|
||||||
call.hasHistory = true
|
call.hasHistory = true
|
||||||
}
|
}
|
||||||
|
if (rtTimer != null) {
|
||||||
|
rtTimer!!.cancel()
|
||||||
|
rtTimer = null
|
||||||
|
if (rt.isPlaying) rt.stop()
|
||||||
|
}
|
||||||
am.mode = AudioManager.MODE_IN_COMMUNICATION
|
am.mode = AudioManager.MODE_IN_COMMUNICATION
|
||||||
am.isSpeakerphoneOn = false
|
am.isSpeakerphoneOn = false
|
||||||
// am.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
|
// am.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
|
||||||
@@ -509,6 +531,11 @@ class MainActivity : AppCompatActivity() {
|
|||||||
History.aorRemoveHistory(history, aor)
|
History.aorRemoveHistory(history, aor)
|
||||||
history.add(History(aor, call.peerURI, "in", false))
|
history.add(History(aor, call.peerURI, "in", false))
|
||||||
}
|
}
|
||||||
|
if (rtTimer != null) {
|
||||||
|
rtTimer!!.cancel()
|
||||||
|
rtTimer = null
|
||||||
|
if (rt.isPlaying) rt.stop()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d("Baresip", "Removing outgoing call $uap/$callp/" +
|
Log.d("Baresip", "Removing outgoing call $uap/$callp/" +
|
||||||
call.peerURI)
|
call.peerURI)
|
||||||
|
|||||||
Reference in New Issue
Block a user