ソースを参照

Prevent crash in audio_backend/alsa.rs when switching from Kodi audio to librespot

Robert 7 年 前
コミット
752a6b1df4
1 ファイル変更9 行追加2 行削除
  1. 9 2
      src/audio_backend/alsa.rs

+ 9 - 2
src/audio_backend/alsa.rs

@@ -18,10 +18,17 @@ impl Sink for AlsaSink {
     fn start(&mut self) -> io::Result<()> {
         if self.0.is_some() {
         } else {
-            self.0 = Some(PCM::open(&*self.1,
+            match PCM::open(&*self.1,
                                     Stream::Playback, Mode::Blocking,
                                     Format::Signed16, Access::Interleaved,
-                                    2, 44100).ok().unwrap());
+                                    2, 44100) {
+                Ok(f) => self.0 = Some(f),
+                Err(e) => {
+                    self.0 = None; 
+                    error!("Alsa error PCM open {}", e); 
+                    return Err(io::Error::new(io::ErrorKind::Other, "Alsa error: PCM open failed"));
+                }
+            }
         }
         Ok(())
     }