我正在开发音乐播放应用程序。当用户将我的应用推到后台时,歌曲播放得很好。现在,如果用户打开相机并开始从摄像机录制视频,我需要暂停从我的应用程序.How播放的歌曲来做到这一点?
发布于 2016-03-01 13:45:10
我希望负责视频录制的应用程序将要求音频焦点通知其他应用程序,它们应该停止播放。如果是这样的话,您可以这样实现AudioManager.OnAudioFocusChangeListener:
@Override
public void onAudioFocusChange(int focusChange)
{
if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT)
{
// pause playback
}
else if (focusChange == AudioManager.AUDIOFOCUS_LOSS)
{
((AudioManager)getSystemService(Context.AUDIO_SERVICE)).abandonAudioFocus(this);
doStopPlayback();
}
// else if... listen to other types of audio focus loss/ gain
}其中doStopPlayback()是您发布MediaPlayer等的方法。
另请参阅此指南以获得媒体回放。
发布于 2016-03-01 13:49:54
您可以使用方法Camera.open(cameraId)检查它。
创建一个新的相机对象来访问特定的硬件摄像机。如果同一台相机被其他应用程序打开,这将引发一个RuntimeException。
如果打开相机失败,抛出RuntimeException (例如,如果相机被另一个进程或设备策略管理器禁用)。更新:
示例:
public boolean isCameraUsebyApp() {
Camera camera = null;
try {
camera = Camera.open();
} catch (RuntimeException e) {
return true;
} finally {
if (camera != null) camera.release();
}
return false;
}你可以用这个方法来使用,但是要记住,这个方法首先要获得相机。
如果它获得成功,那么它意味着没有其他应用程序正在使用该相机,并且不要忘记再次释放它,否则您将无法再次获得它。
它的抛出RuntimeException,这意味着相机是由另一个进程或设备策略管理器已禁用相机。
https://stackoverflow.com/questions/35724297
复制相似问题