Java 如何使用MusicPlayService播放音乐
我是一名学生,刚刚开始学习java和android(目前正在使用android studio)。我一直在学习视频流和音乐流的教程。但我目前正在关注音乐流媒体 代码是好的,但问题是它不会流式播放音乐。此外,没有错误显示我错过了程序中的某些内容或任何内容。它正在模拟器上运行,但它只是不播放音乐 下面是我的MainActivity.java代码:Java 如何使用MusicPlayService播放音乐,java,android,service,media-player,Java,Android,Service,Media Player,我是一名学生,刚刚开始学习java和android(目前正在使用android studio)。我一直在学习视频流和音乐流的教程。但我目前正在关注音乐流媒体 代码是好的,但问题是它不会流式播放音乐。此外,没有错误显示我错过了程序中的某些内容或任何内容。它正在模拟器上运行,但它只是不播放音乐 下面是我的MainActivity.java代码: package com.name.package.yb; import android.content.pm.ActivityInfo; import a
package com.name.package.yb;
import android.content.pm.ActivityInfo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.widget.Toast;
import android.widget.Button;
import android.view.View;
import android.view.View.OnClickListener;
public class MainActivity extends AppCompatActivity {
private Button btnPlayStop;
private boolean boolMusicPlaying = false;
Intent myService;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try{
myService = new Intent(MainActivity.this, MusicPlayService.class);
initViews();
setListeners();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.getClass().getName() + " " + e.getMessage(), Toast.LENGTH_LONG).show();
}
}
private void initViews() {
btnPlayStop = (Button) findViewById(R.id.myButton);
btnPlayStop.setText("Stream Music");
}
private void setListeners() {
btnPlayStop.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
btnPlayStopClick();
}
});
}
private void btnPlayStopClick() {
if (!boolMusicPlaying) {
btnPlayStop.setText("Pause Streaming");
playAudio();
boolMusicPlaying = true;
} else {
if(boolMusicPlaying){
btnPlayStop.setText("Play Stream");
stopPlayService();
boolMusicPlaying = false;
}
}
}
private void stopPlayService() {
try {
stopService(myService);
} catch (Exception e){
e.printStackTrace();
Toast.makeText(getApplicationContext(),
e.getClass().getName() + " " + e.getMessage(),
Toast.LENGTH_LONG).show();
}
boolMusicPlaying = false;
}
private void playAudio() {
try {
startService(myService);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(),e.getClass().getName() + " " + e.getMessage(),Toast.LENGTH_LONG).show();
}
}
}
我的服务名为MusicPlayService.java(我想在后台播放音乐,就像手机上的音乐播放器一样):
p.S apk已成功安装在模拟器中,按钮可单击。它只是不能播放音乐 您的代码似乎很好,您是否将服务添加到清单中
<service android:enabled="true" android:name=".MusicPlayService" />
[
欢迎使用Android编程,调试Android代码的最佳方法是向代码中添加日志。您可以使用Log.d、Log.e等打印变量pass-by方法的值
]试试这个:
1:代码
mediaPlayer = MediaPlayer.create(this, Uri.parse("http://vprbbc.streamguys.net:80/vprbbc24.mp3"));
mediaPlayer.start();
你可以试试
mediaPlayer.setDataSource(AUDIO_STRING);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
如果在线播放音乐,您还需要获得INTERNET权限;如果从内存播放音乐,您需要读取外部存储。您可以共享manifest.xml代码吗?您是否授予INTERNET权限?是:,我的清单文件中有此权限,但没有serviceOops。不。我没有。顺便问一下,android:name=“”是我的服务类的名称吗?是的。我希望即使我已经添加了服务,它仍能起作用。@Harix您必须在清单中声明服务,否则它将无法运行该服务。由于它还没有运行,我想你错过了一些声明的地方,我会尝试再次查看。那是我的舱单服务。无论如何,提前谢谢你的帮助。我还在谷歌文档中寻找一些有帮助的答案。:)在任何地方可能是单击listener或onCreate我已将其添加到我的onCreate:@Override public void onCreate(){super.onCreate();mediaPlayer.setVolume(100100);mediaPlayer=mediaPlayer.create(this,Uri.parse(“);//mediaPlayer.reset();}但仍然不工作。我只得到一个错误:找不到符号变量Uri,可能我需要导入一些东西?请在浏览器中打开链接。它显示的是找不到您请求的文件。如果没有文件,它如何流式传输…?链接工作正常我可以播放它。Ps我编辑了原始链接(我不拥有它,它来自我哥哥的无线电工作文件)。
mediaPlayer.setDataSource(AUDIO_STRING);
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});