Java 如何在android应用程序中设置最大音量? package com.example.va_嵌入 导入android.content.Context 导入android.media.AudioManager 导入android.media.MediaPlayer 导入androidx.appcompat.app.appcompat活动 导入android.os.Bundle 导入android.provider.MediaStore 导入android.util.Log 导入android.view.view 导入android.widget.MediaController 导入android.widget.SeekBar 导入android.widget.VideoView 导入android.widget.SeekBar.onseekbarchaneglistener 导入kotlinx.android.synthetic.main.activity\u main* 类MainActivity:AppCompatActivity(){ 私有lateinit var mediaPlayer:mediaPlayer 专用lateinit var audioManager:audioManager 趣味游戏(视图:视图){ mediaPlayer.start() } 趣味暂停(视图:视图){ mediaPlayer.pause() } 重写创建时的乐趣(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) getSystemService(Context.AUDIO\u服务) val maxVolume=audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC) val volumeControl=findViewById(R.id.seekBar2) volumeControl.max(最大音量) val venom=findViewById(R.id.venom视频) setVideoPath(“android.resource://“+packageName+”/“+R.raw.venom) val mediaC=MediaController(此) 西坦科尔维尤(毒液) venom.setMediaController(mediaC) val vc=findViewById(R.id.seekBar2) setOnSeekbarchaneListener(对象:OnSeekbarchaneListener{ 重写已更改的进程(seekBar:seekBar?,进程:Int,fromUser:Boolean){ Log.i(“SeekBar已更改”,progress.toString()) audioManager.setStreamVolume(audioManager.STREAM_音乐,进度,0) } 在开始跟踪触摸时覆盖乐趣(seekBar:seekBar?){ } 覆盖顶部跟踪触摸屏(seekBar:seekBar?){ } }) 毒液开始 } }

Java 如何在android应用程序中设置最大音量? package com.example.va_嵌入 导入android.content.Context 导入android.media.AudioManager 导入android.media.MediaPlayer 导入androidx.appcompat.app.appcompat活动 导入android.os.Bundle 导入android.provider.MediaStore 导入android.util.Log 导入android.view.view 导入android.widget.MediaController 导入android.widget.SeekBar 导入android.widget.VideoView 导入android.widget.SeekBar.onseekbarchaneglistener 导入kotlinx.android.synthetic.main.activity\u main* 类MainActivity:AppCompatActivity(){ 私有lateinit var mediaPlayer:mediaPlayer 专用lateinit var audioManager:audioManager 趣味游戏(视图:视图){ mediaPlayer.start() } 趣味暂停(视图:视图){ mediaPlayer.pause() } 重写创建时的乐趣(savedInstanceState:Bundle?){ super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) getSystemService(Context.AUDIO\u服务) val maxVolume=audioManager.getStreamMaxVolume(audioManager.STREAM_MUSIC) val volumeControl=findViewById(R.id.seekBar2) volumeControl.max(最大音量) val venom=findViewById(R.id.venom视频) setVideoPath(“android.resource://“+packageName+”/“+R.raw.venom) val mediaC=MediaController(此) 西坦科尔维尤(毒液) venom.setMediaController(mediaC) val vc=findViewById(R.id.seekBar2) setOnSeekbarchaneListener(对象:OnSeekbarchaneListener{ 重写已更改的进程(seekBar:seekBar?,进程:Int,fromUser:Boolean){ Log.i(“SeekBar已更改”,progress.toString()) audioManager.setStreamVolume(audioManager.STREAM_音乐,进度,0) } 在开始跟踪触摸时覆盖乐趣(seekBar:seekBar?){ } 覆盖顶部跟踪触摸屏(seekBar:seekBar?){ } }) 毒液开始 } },java,android,kotlin,Java,Android,Kotlin,XML布局 package com.example.va_embedding import android.content.Context import android.media.AudioManager import android.media.MediaPlayer import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.provider.MediaStore impo

XML布局

package com.example.va_embedding

import android.content.Context
import android.media.AudioManager
import android.media.MediaPlayer
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.provider.MediaStore
import android.util.Log
import android.view.View
import android.widget.MediaController
import android.widget.SeekBar
import android.widget.VideoView
import android.widget.SeekBar.OnSeekBarChangeListener
import kotlinx.android.synthetic.main.activity_main.*


class MainActivity : AppCompatActivity() {

    private lateinit var mediaPlayer: MediaPlayer
    private lateinit var audioManager: AudioManager



    fun play(view: View){
        mediaPlayer.start()

    }

    fun pause(view: View){
        mediaPlayer.pause()
    }


    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        getSystemService(Context.AUDIO_SERVICE)

        val maxVolume = audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC)
        val volumeControl = findViewById<SeekBar>(R.id.seekBar2)

        volumeControl.max(maxVolume)


        val venom = findViewById<VideoView>(R.id.venomvideo)

        venom.setVideoPath("android.resource://" + packageName + "/" + R.raw.venom)

        val mediaC = MediaController(this)

        mediaC.setAnchorView(venom)

        venom.setMediaController(mediaC)

        val vc = findViewById<SeekBar>(R.id.seekBar2)

        vc.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
            override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
                Log.i("SeekBar Changed",progress.toString())
                audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0)

            }

            override fun onStartTrackingTouch(seekBar: SeekBar?) {

            }

            override fun onStopTrackingTouch(seekBar: SeekBar?) {

            }
        })

        venom.start()
    }
}

问题/错误最大未解析引用

目标最大音量因设备而异此代码的目的是设置一个最大音量变量,用于捕获设备的最大音量,用户可以通过seekbar相应地改变音量

SDK版本是28


我正在使用android studio 3.6.1

您需要初始化audioManager

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 

xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <VideoView
        android:id="@+id/venomvideo"
        android:layout_width="333dp"
        android:layout_height="568dp"
        android:layout_marginBottom="5dp"
        app:layout_constraintBottom_toTopOf="@+id/seekBar2"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <SeekBar
        android:id="@+id/seekBar2"
        android:layout_width="249dp"
        android:layout_height="73dp"
        android:layout_marginStart="70dp"
        android:layout_marginEnd="70dp"
        android:layout_marginBottom="50dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

未解析的引用。由于接收器类型不匹配,以下候选项均不适用:
audioManager = getSystemService(Context.AUDIO_SERVICE) as AudioManager