Index: /trunk/src/org/openstreetmap/josm/actions/audio/AbstractAudioAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AbstractAudioAction.java	(revision 12565)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AbstractAudioAction.java	(revision 12565)
@@ -0,0 +1,44 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.actions.audio;
+
+import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.JosmAction;
+import org.openstreetmap.josm.gui.layer.markerlayer.AudioMarker;
+import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
+import org.openstreetmap.josm.tools.Shortcut;
+
+/**
+ * Base class for every action related to audio content.
+ * @since 12565
+ */
+public abstract class AbstractAudioAction extends JosmAction {
+
+    /**
+     * Constructs a new {@code BaseAudioAction}.
+     * @param name the action's text as displayed on the menu (if it is added to a menu)
+     * @param iconName the filename of the icon to use
+     * @param tooltip a longer description of the action that will be displayed in the tooltip
+     * @param shortcut a ready-created shortcut object or null if you don't want a shortcut
+     * @param registerInToolbar register this action for the toolbar preferences?
+     */
+    public AbstractAudioAction(String name, String iconName, String tooltip, Shortcut shortcut, boolean registerInToolbar) {
+        super(name, iconName, tooltip, shortcut, registerInToolbar);
+        updateEnabledState();
+    }
+
+    /**
+     * Checks if there is at least one {@link AudioMarker} is present in the current layout.
+     * @return {@code true} if at least one {@link AudioMarker} is present in the current
+     * layout, {@code false} otherwise.
+     */
+    protected static boolean isAudioMarkerPresent() {
+        return Main.getLayerManager().getLayersOfType(MarkerLayer.class).stream()
+                .flatMap(ml -> ml.data.stream())
+                .anyMatch(m -> m instanceof AudioMarker);
+    }
+
+    @Override
+    protected void updateEnabledState() {
+        setEnabled(isAudioMarkerPresent());
+    }
+}
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioBackAction.java	(revision 12565)
@@ -11,5 +11,4 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
 import org.openstreetmap.josm.io.audio.AudioPlayer;
@@ -21,5 +20,5 @@
  * @since 547
  */
-public class AudioBackAction extends JosmAction {
+public class AudioBackAction extends AbstractAudioAction {
 
     /**
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioFastSlowAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioFastSlowAction.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioFastSlowAction.java	(revision 12565)
@@ -6,5 +6,4 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.io.audio.AudioPlayer;
 import org.openstreetmap.josm.io.audio.AudioUtil;
@@ -15,5 +14,5 @@
  * @since 563
  */
-public abstract class AudioFastSlowAction extends JosmAction {
+public abstract class AudioFastSlowAction extends AbstractAudioAction {
 
     private double multiplier;
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioFwdAction.java	(revision 12565)
@@ -10,5 +10,4 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
 import org.openstreetmap.josm.io.audio.AudioPlayer;
@@ -20,5 +19,5 @@
  * @since 547
  */
-public class AudioFwdAction extends JosmAction {
+public class AudioFwdAction extends AbstractAudioAction {
 
     /**
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioNextAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioNextAction.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioNextAction.java	(revision 12565)
@@ -8,5 +8,4 @@
 import java.awt.event.KeyEvent;
 
-import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -17,5 +16,5 @@
  * @since 547
  */
-public class AudioNextAction extends JosmAction {
+public class AudioNextAction extends AbstractAudioAction {
 
     /**
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioPlayPauseAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioPlayPauseAction.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioPlayPauseAction.java	(revision 12565)
@@ -10,5 +10,4 @@
 import java.net.URL;
 
-import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.layer.markerlayer.AudioMarker;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
@@ -24,5 +23,5 @@
  * @since 547
  */
-public class AudioPlayPauseAction extends JosmAction {
+public class AudioPlayPauseAction extends AbstractAudioAction {
 
     /**
Index: /trunk/src/org/openstreetmap/josm/actions/audio/AudioPrevAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/audio/AudioPrevAction.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/actions/audio/AudioPrevAction.java	(revision 12565)
@@ -8,5 +8,4 @@
 import java.awt.event.KeyEvent;
 
-import org.openstreetmap.josm.actions.JosmAction;
 import org.openstreetmap.josm.gui.layer.markerlayer.MarkerLayer;
 import org.openstreetmap.josm.tools.Shortcut;
@@ -17,5 +16,5 @@
  * @since 547
  */
-public class AudioPrevAction extends JosmAction {
+public class AudioPrevAction extends AbstractAudioAction {
 
     /**
Index: /trunk/src/org/openstreetmap/josm/io/audio/AudioPlayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/audio/AudioPlayer.java	(revision 12564)
+++ /trunk/src/org/openstreetmap/josm/io/audio/AudioPlayer.java	(revision 12565)
@@ -168,5 +168,5 @@
     public static boolean paused() {
         AudioPlayer instance = AudioPlayer.getInstance();
-        return instance == null ? false : (instance.state == State.PAUSED);
+        return instance != null && instance.state == State.PAUSED;
     }
 
@@ -177,5 +177,5 @@
     public static boolean playing() {
         AudioPlayer instance = AudioPlayer.getInstance();
-        return instance == null ? false : (instance.state == State.PLAYING);
+        return instance != null && instance.state == State.PLAYING;
     }
 
