음악 플레이어가 음악을 재생할 때마다 프로세스를 시작하고 실행하는 앱을 만들고 음악이 일시 중지되었을 때 (또는 전화 통화 중일 때) 프로세스를 일시 중지합니다. 필자는 FileObserver를 사용하여 음악 파일에 액세스했을 때 (어떤 노래가 재생되는지 알 수 있어야 함) 볼 수 있다고 생각했지만 관찰자를 실행하고 음악 플레이어를 시작할 때마다 파일 묶음이 나타납니다. 한 번에 액세스 할 수 있습니다. 내 질문 :android 음악 재생/일시 중지시기를 알려주는 방법
- 음악이 어떤 플레이어에서 재생되는지 더 잘 알 수 있습니까?
- 다른 노래가 시작되면 FileObserver가 호출하는 메서드의 이전 반복 실행을 중지하려면 어떻게합니까?
- 음악이 일시 중지되었거나 오디오 포커스가 변경된 경우 실행중인 메서드를 "일시 중지"하는 방법은 무엇입니까?
는 그래서 여기있다, 내 관찰자에 문제가 있는지 확실하지 않다 :
이 내 로그 캣 출력했다observer = new FileObserver(observedPath) {
@Override
public void onEvent(int event,final String file) {
event &= FileObserver.ALL_EVENTS;
switch(event) {
case FileObserver.DELETE_SELF:
break;
case FileObserver.OPEN:
case FileObserver.ACCESS:
if(changesRunning > 0)
{
stopCurrentChange.post(new Runnable() {
@Override
public void run() {
return;
}
});
}
mainThreadHandler.post(new Runnable() {
@Override
public void run()
{
Log.v(TAG,"The event was triggered.");
}
});
handler.post(new Runnable() {
@Override
public void run() {
changesRunning++;//global variable being used
GatherChangeVolume(username, deviceName, file);
changesRunning = 0;
}
});
break;
default:
break;
}
:
08-10 17:30:19.874 3398-3398/badmexican333.volumizer17 V/TweakRunner: Service trying to watch /storage/sdcard1/Music/
08-10 17:30:34.309 3398-3398/badmexican333.volumizer17 V/TweakRunner: The event was triggered.
08-10 17:30:34.310 3398-3799/badmexican333.volumizer17 A/FileObserver: Unhandled exception in FileObserver [email protected]
java.lang.NullPointerException
at badmexican333.volumizer17.TweakRunner$1.onEvent(TweakRunner.java:123)
at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125)
at android.os.FileObserver$ObserverThread.observe(Native Method)
at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
08-10 17:30:34.314 3398-3799/badmexican333.volumizer17 A/FileObserver: Unhandled exception in FileObserver [email protected]
java.lang.NullPointerException
at badmexican333.volumizer17.TweakRunner$1.onEvent(TweakRunner.java:123)
at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125)
at android.os.FileObserver$ObserverThread.observe(Native Method)
at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
08-10 17:30:34.314 3398-3398/badmexican333.volumizer17 V/TweakRunner: The event was triggered.
08-10 17:30:34.318 3398-3398/badmexican333.volumizer17 V/TweakRunner: The event was triggered.
08-10 17:30:34.319 3398-3799/badmexican333.volumizer17 A/FileObserver: Unhandled exception in FileObserver [email protected]
java.lang.NullPointerException
at badmexican333.volumizer17.TweakRunner$1.onEvent(TweakRunner.java:123)
at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125)
at android.os.FileObserver$ObserverThread.observe(Native Method)
at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
08-10 17:30:34.425 3398-3398/badmexican333.volumizer17 V/TweakRunner: The event was triggered.
08-10 17:30:34.425 3398-3799/badmexican333.volumizer17 A/FileObserver: Unhandled exception in FileObserver [email protected]
java.lang.NullPointerException
at badmexican333.volumizer17.TweakRunner$1.onEvent(TweakRunner.java:123)
at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125)
at android.os.FileObserver$ObserverThread.observe(Native Method)
at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
08-10 17:30:34.480 3398-3799/badmexican333.volumizer17 A/FileObserver: Unhandled exception in FileObserver [email protected]
java.lang.NullPointerException
at badmexican333.volumizer17.TweakRunner$1.onEvent(TweakRunner.java:123)
at android.os.FileObserver$ObserverThread.onEvent(FileObserver.java:125)
at android.os.FileObserver$ObserverThread.observe(Native Method)
at android.os.FileObserver$ObserverThread.run(FileObserver.java:88)
08-10 17:30:34.484 3398-3398/badmexican333.volumizer17 V/TweakRunner: The event was triggered.
08-10 17:30:34.571 3398-3398/badmexican333.volumizer17 V/TweakRunner: The event was triggered.
출력은에에에 전달 이 패턴은 조금 더 오래 멈추기 전에.
나는 안드로이드 개발에 새로운 있으며, 어떤 도움을 주시면 대단히 감사하겠습니다.
AudioManager.isMusicActive() 감사합니다; 그것에 대한 검색은 [this] (https://stackoverflow.com/questions/3616956/how-to-get-current-playing-song-details-from-mediaplayer) 트랙의 세부 사항을 얻는 방법에 대한 약간의 설명이되었습니다. ,뿐만 아니라. 이제 마지막 두 가지에 대한 도움이 필요합니다 ... – badmexican333
사용 예제가 추가되었습니다. 누군가 downvote를 설명해 주겠다고? –