0
Привет я пытаюсь играть alarmaound как этотPlay Alarm Sound на Galaxy S1
File f = Helper.getFileFromAsset(fart, context);
final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE);
Ringtone ringtone = RingtoneManager.getRingtone(context, Uri.fromFile(f));
if (ringtone != null) {
ringtone.setStreamType(AudioManager.STREAM_ALARM);
ringtone.play();
}
на моей галактики s4 все нормально, но й s1 дает мне в LogCat
08-11 17:27:31.958: W/PowerManagerService(128): Timer 0x3->0x1|0x1
08-11 17:27:32.813: E/RingtoneManager(2866): getRingtone : file:///data/data/xxx.package.xxx/cache/THEONE.wav, streamType : -1
08-11 17:27:32.876: E/PlayerDriver(83): PlayerDriver::it is a not Protected file
08-11 17:27:32.884: E/OsclDirectFileIO(83): [LargeFileSupport] OsclDirectFileIO::OpenFileOrSharedFd Error = -1
08-11 17:27:32.884: W/MediaPlayer(2866): info/warning (1, 26)
08-11 17:27:32.884: E/PlayerDriver(83): Command PLAYER_SET_DATA_SOURCE completed with an error or info -4
08-11 17:27:32.884: E/MediaPlayer(2866): error (-4, -4)
08-11 17:27:32.884: E/RingtoneManager(2866): Failed to open ringtone file:///data/data/xxx.package.xxx/cache/THEONE.wav
08-11 17:27:32.884: W/PlayerDriver(83): PVMFInfoErrorHandlingComplete
Функция Helper.getFileFromAsset выглядит, что
public static File getFileFromAsset(String name, Context ctx) {
File f = new File(ctx.getCacheDir() + "/" + new File(name).getName());
if (!f.exists())
try {
InputStream is = ctx.getAssets().open(name);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
FileOutputStream fos = new FileOutputStream(f);
fos.write(buffer);
fos.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
return f;
}
я думаю
PlayerDriver::it is a not Protected file
проблема, любые идеи?
, но мне нужно, чтобы воспроизвести определенный файл из моей папки активов , возможно ли это с помощью этого кода? – wutzebaer
хорошо, чтобы сделать это ... лучше сделать новую папку под названием raw внутри папки ресурсов и скопировать туда звуковой клип. затем добавьте следующее: ourSong = MediaPlayer.create (Incoming.this, R.raw.abcd); ourSong.start(); где abcd - звуковой файл ur, а Incoming - ur java class и точно так же, как мы определили Ringtone r; u необходимо определить MediaPlayer ourSong; –