2011-08-07 39 views
8

Tôi đang sử dụng lớp VisualFX AndroidFX trong ứng dụng demo của tôi để đọc FFT nhưng khi tôi cố gắng tạo đối tượng của lớp đó ném ngoại lệ Thời gian chạy (java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -1). Lớp người chơi là lớp tùy chỉnh của tôi để điều khiển phát lại và sử dụng cùng một lớp Người chơi tôi đã triển khai lớp trình cân bằng và điều đó hoạt động tốt. Tôi có cần phải thêm bất kỳ sự cho phép nào trong tệp kê khai không?Android Visualizer lớp ném ngoại lệ thời gian chạy

Player mediaPlayer = Player.GetInstance(); 
    mediaPlayer.LoadFile("song.mp3"); 
    mediaPlayer.Play(); 
    try{ 
    visual = new Visualizer(mediaPlayer.GetAudioSessionID()); // this line causing Exception 
    visual.setEnabled(true); 
    visual.setCaptureSize(Visualizer.getCaptureSizeRange()[1]); 
    } 
    catch(Exception ex) 
    { 
     Log.e("Visual Ex", ex.getMessage()); 
    } 
+0

cũng phải xem http://stackoverflow.com/a/28427213/3496570 – Nepster

Trả lời

27

Đó là do sai lầm ngu ngốc của tôi, tính năng đó yêu cầu quyền đối với số <uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>. cảm ơn

+6

Ngoài ra, nếu sử dụng nguồn âm thanh 0 thì lỗi tương tự sẽ bị ném nếu bạn không đặt '' như [tài liệu] (http://developer.android.com/reference/android/media/audiofx/Visualizer.html). – jwadsack

+0

Điều này đã giúp tôi rất nhiều! Cảm ơn bạn!!! – Foggzie

+0

Dấu vết ngăn xếp phải có trạng thái là –

4

Tôi biết đây là câu trả lời rất muộn nhưng tôi cũng gặp khó khăn với vấn đề này và tôi muốn chia sẻ kinh nghiệm của mình.

Thứ nhất, như câu trả lời ở trên đã đề cập, các điều khoản

<uses-permission android:name="android.permission.RECORD_AUDIO"/> 

và nếu nguồn âm thanh 0 được sử dụng (Visualizer(0); //system mix),

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 

là cần thiết. Sau khi thêm quyền vào ứng dụng của tôi và cài đặt lại (ứng dụng đã biên dịch) một lần nữa, ứng dụng của tôi vẫn bị lỗi. Tôi phát hiện ra rằng thiết bị phải được khởi động lại, để sử dụng Visualizer mà không có bất kỳ ngoại lệ nào (vì bất kỳ lý do gì). Vì vậy, nếu bạn phát triển một ứng dụng và nhận ngoại lệ này, bạn có thể yêu cầu khởi động lại sau khi thêm quyền vào ứng dụng.

+0

Tôi đang tìm kiếm câu trả lời và khởi động lại thiết bị của mình đã khắc phục sự cố! Cảm ơn bạn @Fruchtzwerg –

+0

Cảm ơn bạn @Fruchtzwerg –

Các vấn đề liên quan