Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
arcIntergration
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
马乐
arcIntergration
Commits
2a27202f
Commit
2a27202f
authored
Oct 13, 2023
by
马乐
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.增加TTS
parent
448728d5
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
44 additions
and
1 deletion
+44
-1
MainActivity.kt
app/src/main/java/com/intergration/test/MainActivity.kt
+42
-1
Utils.kt
app/src/main/java/com/intergration/test/utils/Utils.kt
+2
-0
No files found.
app/src/main/java/com/intergration/test/MainActivity.kt
View file @
2a27202f
package
com.intergration.test
import
android.Manifest
import
android.content.Context
import
android.content.pm.PackageManager
import
android.media.AudioManager
import
android.media.CamcorderProfile
import
android.os.Bundle
import
android.os.Environment
import
android.speech.tts.TextToSpeech
import
android.util.Size
import
android.widget.Toast
import
androidx.activity.result.contract.ActivityResultContracts
...
...
@@ -15,6 +18,7 @@ import com.arcsoft.visdrive.sdk.ArcErrorInfo
import
com.arcsoft.visdrive.sdk.ArcVisDriveEngine
import
com.arcsoft.visdrive.sdk.constant.common.ArcModType
import
com.arcsoft.visdrive.sdk.model.common.ArcActiveEnvParam
import
com.blankj.utilcode.util.JsonUtils
import
com.blankj.utilcode.util.LogUtils
import
com.blankj.utilcode.util.TimeUtils
import
com.intergration.test.databinding.ActivityMainBinding
...
...
@@ -29,6 +33,7 @@ import com.intergration.test.dms.setDmsDistractScope
import
com.intergration.test.dms.setDmsDrivingStatus
import
com.intergration.test.dms.startDms
import
com.intergration.test.utils.DOT_PREFACE_DURATION
import
com.intergration.test.utils.TTS_ENGINE
import
com.intergration.test.utils.VIDEO_FOLDER
import
com.mediatek.smartplatform.PreviewSource
import
com.mediatek.smartplatform.RecordConfiguration
...
...
@@ -42,9 +47,10 @@ import kotlinx.coroutines.Job
import
kotlinx.coroutines.cancel
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
import
java.util.Locale
import
java.util.concurrent.CancellationException
class
MainActivity
:
AppCompatActivity
(),
VideoCallback
{
class
MainActivity
:
AppCompatActivity
(),
TextToSpeech
.
OnInitListener
,
VideoCallback
{
private
var
dmsCoroutineScope
:
DmsCoroutineScope
?
=
null
...
...
@@ -69,6 +75,15 @@ class MainActivity : AppCompatActivity(),VideoCallback{
}
}
private
val
tts
by
lazy
{
val
am
=
getSystemService
(
Context
.
AUDIO_SERVICE
)
as
AudioManager
val
sb2value
=
am
.
getStreamMaxVolume
(
AudioManager
.
STREAM_MUSIC
)
am
.
setStreamVolume
(
AudioManager
.
STREAM_MUSIC
,
sb2value
,
0
)
val
bundle
=
Bundle
()
bundle
.
putFloat
(
TextToSpeech
.
Engine
.
KEY_PARAM_VOLUME
,
1.0f
)
TextToSpeech
(
this
,
this
,
TTS_ENGINE
)
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
binding
=
ActivityMainBinding
.
inflate
(
layoutInflater
)
...
...
@@ -117,6 +132,7 @@ class MainActivity : AppCompatActivity(),VideoCallback{
coroutineContext
[
DmsCoroutineContext
]
?.
engine
?.
let
{
engine
->
coroutineContext
[
DmsCoroutineContext
]
?.
spmCameraDevice
?.
startDms
(
engine
)
?.
collect
{
result
->
binding
.
detectResult
.
text
=
result
tts
.
speak
(
result
,
TextToSpeech
.
QUEUE_ADD
,
null
,
null
)
launch
(
Dispatchers
.
IO
){
coroutineContext
[
DmsCoroutineContext
]
?.
spmCameraDevice
?.
lockRecordingVideo
(
DOT_PREFACE_DURATION
,
""
,
RecordSource
.
GENERAL_CAMERA
)
...
...
@@ -177,6 +193,31 @@ class MainActivity : AppCompatActivity(),VideoCallback{
}
override
fun
onInit
(
status
:
Int
)
{
if
(
status
==
TextToSpeech
.
SUCCESS
)
{
when
(
tts
.
setLanguage
(
Locale
.
CHINA
))
{
TextToSpeech
.
LANG_MISSING_DATA
,
TextToSpeech
.
LANG_NOT_SUPPORTED
->
{
LogUtils
.
file
(
"TTS暂时不支持这种语音朗读"
)
Toast
.
makeText
(
this
,
"TTS暂时不支持这种语音朗读"
,
Toast
.
LENGTH_SHORT
).
show
()
}
else
->
{
LogUtils
.
d
(
"tts初始化成功!"
)
tts
.
setPitch
(
1.0f
)
tts
.
setSpeechRate
(
1.0f
)
}
}
}
else
{
LogUtils
.
file
(
"TTS初始化失败"
)
Toast
.
makeText
(
this
,
"TTS初始化失败"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
override
fun
onDestroy
()
{
tts
.
stop
()
tts
.
shutdown
()
super
.
onDestroy
()
}
private
fun
allPermissionsGranted
()
=
REQUIRED_PERMISSIONS
.
all
{
ContextCompat
.
checkSelfPermission
(
baseContext
,
it
)
==
PackageManager
.
PERMISSION_GRANTED
...
...
app/src/main/java/com/intergration/test/utils/Utils.kt
View file @
2a27202f
...
...
@@ -12,6 +12,8 @@ const val DMS_PIC_HEIGHT = 720
const
val
DOT_PREFACE_DURATION
=
5
const
val
TTS_ENGINE
=
"com.iflytek.speechcloud"
const
val
VIDEO_FOLDER
=
"sdcard/waytous/alarm/"
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment