MediaPlayer:/res/raw 上的音频文件检测为整数
MediaPlayer: audio file on /res/raw detected as an Integer
我想在单击按钮时播放音频文件。但是我的代码生成的错误代码是:
Cannot resolve method'create(context, int)'
所以,我的音频文件被检测为一个整数。
这是我的片段代码:
package com.example.suha.belajarhurufhijaiyah;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
/**
* A simple {@link Fragment} subclass.
*/
public class Hijaiyah extends Fragment implements View.OnClickListener {
ImageButton alif;
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_hijaiyah, container, false);
alif = view.findViewById(R.id.alif_sound);
alif.setOnClickListener(this);
return view;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.alif_sound:
MediaPlayer mp = MediaPlayer.create(this, R.raw.sound_alif);
mp.start();
}
}
}
R.raw.sound_alif
产生错误..
这是我的资源层
您正在尝试在 Fragment 中创建 MediaPlayer 使用 getActivity()
或 getContext()
而不是 this
所以使用下面的代码
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.alif_sound:
MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.sound_alif);
mp.start();
}
所有资源在R
中都表示为Integers
class那不是你的问题问题是Context
你传入了一个Fragment
将 this
更改为 getActivity
因此将您的行更改为:
MediaPlayer mp = MediaPlayer.create(getActivity, R.raw.sound_alif);
我想在单击按钮时播放音频文件。但是我的代码生成的错误代码是:
Cannot resolve method'create(context, int)'
所以,我的音频文件被检测为一个整数。
这是我的片段代码:
package com.example.suha.belajarhurufhijaiyah;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageButton;
/**
* A simple {@link Fragment} subclass.
*/
public class Hijaiyah extends Fragment implements View.OnClickListener {
ImageButton alif;
View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment_hijaiyah, container, false);
alif = view.findViewById(R.id.alif_sound);
alif.setOnClickListener(this);
return view;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.alif_sound:
MediaPlayer mp = MediaPlayer.create(this, R.raw.sound_alif);
mp.start();
}
}
}
R.raw.sound_alif
产生错误..
这是我的资源层
您正在尝试在 Fragment 中创建 MediaPlayer 使用 getActivity()
或 getContext()
而不是 this
所以使用下面的代码
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.alif_sound:
MediaPlayer mp = MediaPlayer.create(getActivity(), R.raw.sound_alif);
mp.start();
}
所有资源在R
中都表示为Integers
class那不是你的问题问题是Context
你传入了一个Fragment
将 this
更改为 getActivity
因此将您的行更改为:
MediaPlayer mp = MediaPlayer.create(getActivity, R.raw.sound_alif);