当我在Kotlin中构建我的应用程序时,我的Android屏幕上什么都没有显示

mfuanj7w  于 2023-06-04  发布在  Android
关注(0)|答案(1)|浏览(220)

我不知道为什么会这样,但我有一个想法。我不知道该怎么办。我在网上搜索过,但没有得到确切的答案。这里有一个错误,可能会有帮助。(不要询问文件名)
Access denied finding property "ro.vendor.pref_scale_resolution"
我试着搜索互联网,看看我的目录,等等。但我什么都没找到。
我创建的应用程序的屏幕上没有显示任何内容。这是密码。
主要活动:

package com.example.myapplication

import android.app.Activity
import android.media.AudioAttributes
import android.media.MediaPlayer
import android.os.Bundle
import android.widget.Button

class MyActivity : Activity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContentView(R.layout.amogusfile)

        val button = findViewById<Button>(R.id.supabutton)
        button.setOnClickListener {
            mediaPlayer
        }
    }
}

const val url = "https://www.youtube.com/watch?v=4KfC923EFsY" // your URL here
val mediaPlayer = MediaPlayer().apply {
    setAudioAttributes(
        AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build()
    )
    setDataSource(url)
    prepare() // might take long! (for buffering, etc)
    start()
}

amogusfile.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical"
    tools:ignore="ExtraText">

    <Button
        android:id="@+id/supabutton"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/amogus"
        tools:ignore="VisualLintButtonSize" />
    \
</LinearLayout>
hkmswyz6

hkmswyz61#

声明mediaPlayer变量的方式是在构造类时 * 在调用 * onCreate之前 * 将其初始化 * 并准备好并开始播放 *。

val mediaPlayer = MediaPlayer().apply { // Create MediaPlayer object when class is created

    // Also sets AudioAttributes

    setAudioAttributes(
        AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build()
    )
    setDataSource(url)

    // Also calls prepare which, based on the comment, could take long and hang

    prepare() // might take long! (for buffering, etc)

    // Also STARTS the media - that can't be right
    start()
}

同时,您的按钮单击只是引用变量。这没用

button.setOnClickListener {
    mediaPlayer
}

我假设你至少不想调用start(),直到你点击按钮:

val mediaPlayer = MediaPlayer().apply {
    setAudioAttributes(
        AudioAttributes.Builder()
            .setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
            .setUsage(AudioAttributes.USAGE_MEDIA)
            .build()
    )
    setDataSource(url)
    prepare() // might take long! (for buffering, etc)
}

然后:

button.setOnClickListener {
    mediaPlayer.start()
}

您也可以移动prepare()调用,或使用prepareAsync()

相关问题