【发布时间】:2018-02-02 09:20:39
【问题描述】:
我实际上正在设置一个简单的 videoView,当活动开始时会静音(声音),然后可以通过按下按钮激活声音。
我不想使用 AudioManager,而是使用媒体播放器。我还没有发现我做错了什么。寻求帮助。
我的代码实际上是在 Kotlin 中,但我相信即使是 java 解决方案也会对我有所帮助。
这是我的代码:
import android.net.Uri
import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import android.widget.VideoView
import android.util.DisplayMetrics
import android.media.MediaPlayer.OnPreparedListener
import android.widget.ImageButton
import android.widget.TextView
class AboutActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_about)
supportActionBar?.setDisplayHomeAsUpEnabled(true) /*show back button*/
/*Display video*/
val video = findViewById<VideoView>(R.id.coverVideo)
video.setVideoPath(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.cover).toString());
video.start() /*Start video automatically*/
//Get screen size
val displaymetrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(displaymetrics)
val width = displaymetrics.widthPixels //get width
val video_height = 9 * width / 16 //calculate height for 16:9 format
//Set video height
val params = video.getLayoutParams()
params.width = width
params.height = video_height
video.setLayoutParams(params)
video.setOnPreparedListener({
mp -> mp.isLooping = true; //Make it loop
mp.setVolume(0f, 0f); //Mute
})
val speaker = findViewById<ImageButton>(R.id.speaker)
speaker.setOnClickListener { speakerPressed(video) }
}
override fun onBackPressed() {
super.onBackPressed()
overridePendingTransition(R.anim.hold, R.anim.fade_out)
}
fun speakerPressed(v: Any){
val v = findViewById<VideoView>(R.id.coverVideo)
v.setOnPreparedListener({
mp -> mp.setVolume(1.0f, 1.0f); //Unmute
})
val VideoView = findViewById<TextView>(R.id.textView6)
VideoView.text = "ButtonPressed" //Checking if the click setup works
}
}
【问题讨论】:
-
可能是重复问题here
-
嗨,谢谢你的回答,我已经看过那个帖子了,不幸的是,由于某种原因,那里的答案对我不起作用
-
你检查过(通过调试器)
speakerPressed方法是否被调用过?还要检查 lambda 中的mp是什么,以确保您正在修改正确的对象。 -
我确实检查了speakerPressed,它被调用了。我实际上是在尝试寻找一种不同的方式来设置 mediaPlayer,这可能是问题所在。
标签: android video kotlin android-videoview