要实现Android上的相机和音乐播放器功能,你需要使用Android的API和一些开源库。下面是一个简单的示例,展示了如何使用Camera API来拍照,并使用MediaPlayer来播放音乐。
public class CameraActivity extends Activity {
private Camera mCamera;
private CameraPreview mPreview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camera);
// 获取相机实例
mCamera = getCameraInstance();
// 创建相机预览视图
mPreview = new CameraPreview(this, mCamera);
FrameLayout previewLayout = findViewById(R.id.camera_preview);
previewLayout.addView(mPreview);
// 设置拍照按钮的点击事件
Button captureButton = findViewById(R.id.button_capture);
captureButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 拍照
mCamera.takePicture(null, null, mPicture);
}
});
}
/** 获取相机实例 */
private Camera getCameraInstance() {
Camera camera = null;
try {
camera = Camera.open();
} catch (Exception e) {
// 相机不可用
}
return camera;
}
/** 保存照片到设备 */
private PictureCallback mPicture = new PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
File pictureFile = getOutputMediaFile();
if (pictureFile == null) {
return;
}
try {
FileOutputStream fos = new FileOutputStream(pictureFile);
fos.write(data);
fos.close();
Toast.makeText(CameraActivity.this, "照片保存成功", Toast.LENGTH_SHORT).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
};
/** 创建保存照片的文件 */
private File getOutputMediaFile() {
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_PICTURES), "CameraDemo");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
return null;
}
}
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
mediaFile = new File(mediaStorageDir.getPath() + File.separator + "IMG_" + timeStamp + ".jpg");
return mediaFile;
}
}
public class MusicPlayerActivity extends Activity {
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music_player);
// 初始化MediaPlayer
mediaPlayer = MediaPlayer.create(this, R.raw.music);
// 设置播放按钮的点击事件
Button playButton = findViewById(R.id.button_play);
playButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!mediaPlayer.isPlaying()) {
mediaPlayer.start();
}
}
});
// 设置暂停按钮的点击事件
Button pauseButton = findViewById(R.id.button_pause);
pauseButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
}
});
// 设置停止按钮的点击事件
Button stopButton = findViewById(R.id.button_stop);
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
}
mediaPlayer.release();
mediaPlayer = null;
}
});
}
}
这个示例是一个简单的相机和音乐播放器的实现。你可以根据你的需求进行更多的定制