我正在尝试使用Mediaplayer在android studio中制作一个广播流应用程序,但是我在编译时显示了下一个错误:
使用或覆盖已弃用的API。 使用-Xlint:deprecation重新编译以获取详细信息。
我正在android文档中搜索,我应该将此方法重新放置为setAudioAttributes,我该如何更改?我是使用Android Studio的新手。
谢谢。
公共类电台扩展了片段{
Button play_pause;
MediaPlayer mp;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.radio, container, false);
play_pause = (Button) view.findViewById(R.id.btnplay);
try {
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDataSource("http://198.27.83.65:9962/;stream.mp3");
mp.prepareAsync();
}
catch (Exception e){
Toast.makeText(getContext(),"Error" + e,Toast.LENGTH_SHORT).show();
}
//mp = MediaPlayer.create(this.getContext(), R.raw.radio);
play_pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mp.isPlaying()) {
mp.pause();
Toast.makeText(getContext(),"Stop",Toast.LENGTH_SHORT).show();
}
else {
mp.start();
Toast.makeText(getContext(),"Start",Toast.LENGTH_SHORT).show();
}
}
});
return view;
}
}
答案 0 :(得分:0)
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
到
mp.setAudioAttributes(
new AudioAttributes
.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.build());
答案 1 :(得分:0)
使用 setAudioAttributes(AudioAttributes)代替 setAudioStreamType()
Google文档说:
设置此MediaPlayer的音频流类型。有关流类型的列表,请参见AudioManager。必须在prepare()或prepareAsync()之前调用此方法,以使目标流类型在此之后生效。
答案 2 :(得分:0)
setAudioStreamType 已替换为 setAudioAttributes。 下面是相同的示例实现。如需更多了解,您可以参考以下文档:
https://developer.android.com/guide/topics/media/mediaplayer.html#kotlin
val mediaPlayer = MediaPlayer().apply {
setAudioAttributes(
AudioAttributes.Builder()
.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC)
.setUsage(AudioAttributes.USAGE_MEDIA)
.build()
)
setDataSource(applicationContext, myUri)
prepare()
start()
}
答案 3 :(得分:-2)
它将在所有API级别上运行
MediaPlayer mediaPlayer = new MediaPlayer();
Uri audioUri = Uri.parse(strUri);
try {
mediaPlayer.setDataSource(context, audioUri);
} catch (IOException e) {
e.printStackTrace();
}
try {
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();