Java Code Examples for org.jaudiotagger.audio.exceptions.CannotReadException

The following examples show how to use org.jaudiotagger.audio.exceptions.CannotReadException. These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source Project: QuickLyric   Source File: Id3Writer.java    License: GNU General Public License v3.0 6 votes vote down vote up
@Override
protected Boolean doInBackground(Object... params) {
    Lyrics editedLyrics = (Lyrics) params[0];
    File musicFile = (File) params[1];
    boolean failed = false;

    if (musicFile != null)
        try {
            AudioFile af = AudioFileIO.read(musicFile);
            TagOptionSingleton.getInstance().setAndroid(true);
            Tag tags = af.getTag();
            tags.setField(FieldKey.ARTIST, editedLyrics.getArtist());
            tags.setField(FieldKey.TITLE, editedLyrics.getTitle());
            tags.setField(FieldKey.LYRICS, Html.fromHtml(editedLyrics.getText()).toString());
            af.setTag(tags);
            AudioFileIO.write(af);
        } catch (CannotReadException | IOException | ReadOnlyFileException | TagException
                | InvalidAudioFrameException | NullPointerException | CannotWriteException e) {
            e.printStackTrace();
            failed = true;
        }
    return failed;
}
 
Example 2
Source Project: HubPlayer   Source File: BasicPlayer.java    License: GNU General Public License v3.0 6 votes vote down vote up
public int getAudioTrackLength(URL url) {
	try {

		// 只能获得本地歌曲文件的信息
		AudioFile file = AudioFileIO.read(new File(url.toURI()));

		// 获取音频文件的头信息
		AudioHeader audioHeader = file.getAudioHeader();
		// 文件长度 转换成时间
		return audioHeader.getTrackLength();
	} catch (CannotReadException | IOException | TagException
			| ReadOnlyFileException | InvalidAudioFrameException
			| URISyntaxException e) {
		e.printStackTrace();
		return -1;
	}

}
 
Example 3
Source Project: Rey-MusicPlayer   Source File: AlbumsArtDownloadService.java    License: Apache License 2.0 5 votes vote down vote up
public void setAlbumArt(File file, Bitmap artworkBitmap, Song song) throws IOException, TagException, ReadOnlyFileException, CannotReadException, InvalidAudioFrameException {

        artworkBitmap = Bitmap.createScaledBitmap(artworkBitmap, 500, 500, false);

        ByteArrayOutputStream stream = new ByteArrayOutputStream();
        artworkBitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);

        byte[] byteArray = stream.toByteArray();

        File artworkFile = new File(Environment.getExternalStorageDirectory() + "/artwork.jpg");

        if (!artworkFile.exists())
            artworkFile.createNewFile();

        FileOutputStream out = new FileOutputStream(artworkFile);
        artworkBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);

        Artwork artwork = Artwork.createArtworkFromFile(artworkFile);

        artwork.setBinaryData(byteArray);
        AudioFile audioFile = AudioFileIO.read(file);
        Tag tag = audioFile.getTagOrCreateAndSetDefault();


        if (tag.getFirstArtwork() != null) {
            tag.deleteArtworkField();
            tag.setField(artwork);
        } else {
            tag.addField(artwork);
        }

        Uri uri = MusicUtils.getAlbumArtUri(song._albumId);
        DiskCacheUtils.removeFromCache(uri.toString(), ImageLoader.getInstance().getDiskCache());
        String path = FileUtils.getRealPathFromURI(uri);
        new File(path).delete();
        artworkFile.delete();
    }
 
Example 4
Source Project: APlayer   Source File: MediaStoreUtil.java    License: GNU General Public License v3.0 5 votes vote down vote up
@WorkerThread
public static void saveArtwork(Context context, int albumId, File artFile)
    throws TagException, ReadOnlyFileException, CannotReadException, InvalidAudioFrameException, IOException, CannotWriteException {
  Song song = MediaStoreUtil.getSongByAlbumId(albumId);
  if (song == null) {
    return;
  }
  AudioFile audioFile = AudioFileIO.read(new File(song.getUrl()));
  Tag tag = audioFile.getTagOrCreateAndSetDefault();
  Artwork artwork = ArtworkFactory.createArtworkFromFile(artFile);
  tag.deleteArtworkField();
  tag.setField(artwork);
  audioFile.commit();
  insertAlbumArt(context, albumId, artFile.getAbsolutePath());
}
 
Example 5
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Activity context = getActivity();
    final Song song = getArguments().getParcelable("song");

    MaterialDialog dialog = new MaterialDialog.Builder(context)
            .customView(R.layout.dialog_file_details, true)
            .title(context.getResources().getString(R.string.label_details))
            .positiveText(android.R.string.ok)
            .build();

    View dialogView = dialog.getCustomView();
    final TextView fileName = dialogView.findViewById(R.id.file_name);
    final TextView filePath = dialogView.findViewById(R.id.file_path);
    final TextView fileSize = dialogView.findViewById(R.id.file_size);
    final TextView fileFormat = dialogView.findViewById(R.id.file_format);
    final TextView songLength = dialogView.findViewById(R.id.song_length);
    final TextView bitRate = dialogView.findViewById(R.id.bitrate);
    final TextView samplingRate = dialogView.findViewById(R.id.sampling_rate);

    fileName.setText(makeTextWithTitle(context, R.string.label_file_name, "-"));
    filePath.setText(makeTextWithTitle(context, R.string.label_file_path, "-"));
    fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, "-"));
    fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, "-"));
    songLength.setText(makeTextWithTitle(context, R.string.label_song_length, "-"));
    bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, "-"));
    samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, "-"));

    if (song != null) {
        final File songFile = new File(song.data);
        if (songFile.exists()) {
            fileName.setText(makeTextWithTitle(context, R.string.label_file_name, songFile.getName()));
            filePath.setText(makeTextWithTitle(context, R.string.label_file_path, songFile.getAbsolutePath()));
            fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, getFileSizeString(songFile.length())));
            try {
                AudioFile audioFile = AudioFileIO.read(songFile);
                AudioHeader audioHeader = audioFile.getAudioHeader();

                fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, audioHeader.getFormat()));
                songLength.setText(makeTextWithTitle(context, R.string.label_song_length, MusicUtil.getReadableDurationString(audioHeader.getTrackLength() * 1000)));
                bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, audioHeader.getBitRate() + " kb/s"));
                samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, audioHeader.getSampleRate() + " Hz"));
            } catch (@NonNull CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) {
                Log.e(TAG, "error while reading the song file", e);
                // fallback
                songLength.setText(makeTextWithTitle(context, R.string.label_song_length, MusicUtil.getReadableDurationString(song.duration)));
            }
        } else {
            // fallback
            fileName.setText(makeTextWithTitle(context, R.string.label_file_name, song.title));
            songLength.setText(makeTextWithTitle(context, R.string.label_song_length, MusicUtil.getReadableDurationString(song.duration)));
        }
    }

    return dialog;
}
 
Example 6
Source Project: Orin   Source File: SongDetailDialog.java    License: GNU General Public License v3.0 4 votes vote down vote up
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Activity context = getActivity();
    final Song song = getArguments().getParcelable("song");

    MaterialDialog dialog = new MaterialDialog.Builder(context)
            .customView(R.layout.dialog_file_details, true)
            .title(context.getResources().getString(R.string.label_details))
            .positiveText(android.R.string.ok)
            .build();

    View dialogView = dialog.getCustomView();
    final TextView fileName = (TextView) dialogView.findViewById(R.id.file_name);
    final TextView filePath = (TextView) dialogView.findViewById(R.id.file_path);
    final TextView fileSize = (TextView) dialogView.findViewById(R.id.file_size);
    final TextView fileFormat = (TextView) dialogView.findViewById(R.id.file_format);
    final TextView trackLength = (TextView) dialogView.findViewById(R.id.track_length);
    final TextView bitRate = (TextView) dialogView.findViewById(R.id.bitrate);
    final TextView samplingRate = (TextView) dialogView.findViewById(R.id.sampling_rate);

    fileName.setText(makeTextWithTitle(context, R.string.label_file_name, "-"));
    filePath.setText(makeTextWithTitle(context, R.string.label_file_path, "-"));
    fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, "-"));
    fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, "-"));
    trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, "-"));
    bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, "-"));
    samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, "-"));

    try {
        if (song != null) {
            final File songFile = new File(song.data);
            if (songFile.exists()) {
                AudioFile audioFile = AudioFileIO.read(songFile);
                AudioHeader audioHeader = audioFile.getAudioHeader();

                fileName.setText(makeTextWithTitle(context, R.string.label_file_name, songFile.getName()));
                filePath.setText(makeTextWithTitle(context, R.string.label_file_path, songFile.getAbsolutePath()));
                fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, getFileSizeString(songFile.length())));
                fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, audioHeader.getFormat()));
                trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(audioHeader.getTrackLength() * 1000)));
                bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, audioHeader.getBitRate() + " kb/s"));
                samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, audioHeader.getSampleRate() + " Hz"));
            }
        }
    } catch (@NonNull CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) {
        Log.e(TAG, "error while reading the song file", e);
    }
    return dialog;
}
 
Example 7
Source Project: Rey-MusicPlayer   Source File: Id3TagEditorActivity.java    License: Apache License 2.0 4 votes vote down vote up
private void fetchDetails() {
        File file = new File(SONG_PATH);

        try {
            AudioFile audioFile = AudioFileIO.read(file);
            Tag tag = audioFile.getTagOrCreateAndSetDefault();

            title = tag.getFirst(FieldKey.TITLE);

            mTitleEditText.setText(title);
            mTitleEditText.setSelection(title.length());

            artist = tag.getFirst(FieldKey.ARTIST);
            mArtistEditText.setText(artist);
            mArtistEditText.setSelection(artist.length());

            album = tag.getFirst(FieldKey.ALBUM);
            mAlbumEditText.setText(album);
            mAlbumEditText.setSelection(album.length());


            albumArtist = tag.getFirst(FieldKey.ALBUM_ARTIST);
            mAlbumArtistEditText.setText(albumArtist);
            mAlbumArtistEditText.setSelection(albumArtist.length());


            genre = tag.getFirst(FieldKey.GENRE);
            mGenreEditText.setText(genre);
            mGenreEditText.setSelection(genre.length());

            producer = tag.getFirst(FieldKey.PRODUCER);
            mProducerEditText.setText(producer);
            mProducerEditText.setSelection(mProducerEditText.length());

            year = tag.getFirst(FieldKey.YEAR);
            mYearEditText.setText(year);
            mYearEditText.setSelection(year.length());

            track = tag.getFirst(FieldKey.TRACK);
            mTrackEditText.setText(track);
            mTrackEditText.setSelection(track.length());


            totalTrack = tag.getFirst(FieldKey.TRACK_TOTAL);
            mTotalTrackEditText.setText(totalTrack);
            mTotalTrackEditText.setSelection(totalTrack.length());

            comment = tag.getFirst(FieldKey.COMMENT);
            mCommentsEditText.setText(comment);
            mCommentsEditText.setSelection(comment.length());


            List<Artwork> artwork = tag.getArtworkList();

            if (artwork.size() > 0) {
                byte[] image = artwork.get(0).getBinaryData();
                Bitmap bitmap = BitmapFactory.decodeByteArray(image, 0, image.length);
//                mCardView.setCardBackgroundColor(Palette.from(bitmap).generate().getC(R.color.deep_purple));
                mAlbumArtImage.setImageBitmap(bitmap);
            }
        } catch (CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) {
            e.printStackTrace();
            Toast.makeText(this, R.string.track_is_malformed, Toast.LENGTH_SHORT).show();
            finish();
        }
    }
 
Example 8
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Activity context = getActivity();
    final Song song = getArguments().getParcelable("song");

    MaterialDialog dialog = new MaterialDialog.Builder(context)
            .customView(R.layout.dialog_file_details, true)
            .title(context.getResources().getString(R.string.label_details))
            .positiveText(android.R.string.ok)
            .build();

    View dialogView = dialog.getCustomView();
    final TextView fileName = dialogView.findViewById(R.id.file_name);
    final TextView filePath = dialogView.findViewById(R.id.file_path);
    final TextView fileSize = dialogView.findViewById(R.id.file_size);
    final TextView fileFormat = dialogView.findViewById(R.id.file_format);
    final TextView trackLength = dialogView.findViewById(R.id.track_length);
    final TextView bitRate = dialogView.findViewById(R.id.bitrate);
    final TextView samplingRate = dialogView.findViewById(R.id.sampling_rate);

    fileName.setText(makeTextWithTitle(context, R.string.label_file_name, "-"));
    filePath.setText(makeTextWithTitle(context, R.string.label_file_path, "-"));
    fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, "-"));
    fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, "-"));
    trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, "-"));
    bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, "-"));
    samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, "-"));

    try {
        if (song != null) {
            final File songFile = new File(song.data);
            if (songFile.exists()) {
                AudioFile audioFile = AudioFileIO.read(songFile);
                AudioHeader audioHeader = audioFile.getAudioHeader();

                fileName.setText(makeTextWithTitle(context, R.string.label_file_name, songFile.getName()));
                filePath.setText(makeTextWithTitle(context, R.string.label_file_path, songFile.getAbsolutePath()));
                fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, getFileSizeString(songFile.length())));
                fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, audioHeader.getFormat()));
                trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(audioHeader.getTrackLength() * 1000)));
                bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, audioHeader.getBitRate() + " kb/s"));
                samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, audioHeader.getSampleRate() + " Hz"));
            }
        }
    } catch (@NonNull CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) {
        Log.e(TAG, "error while reading the song file", e);
    }
    return dialog;
}
 
Example 9
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Activity context = getActivity();
    final Song song = getArguments().getParcelable("song");

    MaterialDialog dialog = new MaterialDialog.Builder(context)
            .customView(R.layout.dialog_file_details, true)
            .title(context.getResources().getString(R.string.label_details))
            .positiveText(android.R.string.ok)
            .build();

    View dialogView = dialog.getCustomView();
    final TextView fileName = dialogView.findViewById(R.id.file_name);
    final TextView filePath = dialogView.findViewById(R.id.file_path);
    final TextView fileSize = dialogView.findViewById(R.id.file_size);
    final TextView fileFormat = dialogView.findViewById(R.id.file_format);
    final TextView trackLength = dialogView.findViewById(R.id.track_length);
    final TextView bitRate = dialogView.findViewById(R.id.bitrate);
    final TextView samplingRate = dialogView.findViewById(R.id.sampling_rate);
    final TextView replayGain = dialogView.findViewById(R.id.replay_gain);

    fileName.setText(makeTextWithTitle(context, R.string.label_file_name, "-"));
    filePath.setText(makeTextWithTitle(context, R.string.label_file_path, "-"));
    fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, "-"));
    fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, "-"));
    trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, "-"));
    bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, "-"));
    samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, "-"));
    replayGain.setText(makeTextWithTitle(context, R.string.label_replay_gain, "-"));

    if (song != null) {
        final File songFile = new File(song.data);
        if (songFile.exists()) {
            fileName.setText(makeTextWithTitle(context, R.string.label_file_name, songFile.getName()));
            filePath.setText(makeTextWithTitle(context, R.string.label_file_path, songFile.getAbsolutePath()));
            fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, getFileSizeString(songFile.length())));
            try {
                AudioFile audioFile = AudioFileIO.read(songFile);
                AudioHeader audioHeader = audioFile.getAudioHeader();

                fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, audioHeader.getFormat()));
                trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(audioHeader.getTrackLength() * 1000)));
                bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, audioHeader.getBitRate() + " kb/s"));
                samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, audioHeader.getSampleRate() + " Hz"));

                float rgTrack = song.getReplayGainTrack();
                float rgAlbum = song.getReplayGainAlbum();
                String replayGainValues = "";
                if (rgTrack != 0.0) {
                    replayGainValues += String.format("%s: %.2f dB ", context.getString(R.string.song), rgTrack);
                }
                if (rgAlbum != 0.0) {
                    replayGainValues += String.format("%s: %.2f dB ", context.getString(R.string.album), rgAlbum);
                }
                if (replayGainValues.equals("")) {
                    replayGainValues = context.getString(R.string.none);
                }
                replayGain.setText(makeTextWithTitle(context, R.string.label_replay_gain, replayGainValues));
            } catch (@NonNull CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) {
                Log.e(TAG, "error while reading the song file", e);
                // fallback
                trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(song.duration)));
            }
        } else {
            // fallback
            fileName.setText(makeTextWithTitle(context, R.string.label_file_name, song.title));
            trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(song.duration)));
        }
    }

    return dialog;
}
 
Example 10
Source Project: Phonograph   Source File: SongDetailDialog.java    License: GNU General Public License v3.0 4 votes vote down vote up
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final Activity context = getActivity();
    final Song song = getArguments().getParcelable("song");

    MaterialDialog dialog = new MaterialDialog.Builder(context)
            .customView(R.layout.dialog_file_details, true)
            .title(context.getResources().getString(R.string.label_details))
            .positiveText(android.R.string.ok)
            .build();

    View dialogView = dialog.getCustomView();
    final TextView fileName = dialogView.findViewById(R.id.file_name);
    final TextView filePath = dialogView.findViewById(R.id.file_path);
    final TextView fileSize = dialogView.findViewById(R.id.file_size);
    final TextView fileFormat = dialogView.findViewById(R.id.file_format);
    final TextView trackLength = dialogView.findViewById(R.id.track_length);
    final TextView bitRate = dialogView.findViewById(R.id.bitrate);
    final TextView samplingRate = dialogView.findViewById(R.id.sampling_rate);

    fileName.setText(makeTextWithTitle(context, R.string.label_file_name, "-"));
    filePath.setText(makeTextWithTitle(context, R.string.label_file_path, "-"));
    fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, "-"));
    fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, "-"));
    trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, "-"));
    bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, "-"));
    samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, "-"));

    if (song != null) {
        final File songFile = new File(song.data);
        if (songFile.exists()) {
            fileName.setText(makeTextWithTitle(context, R.string.label_file_name, songFile.getName()));
            filePath.setText(makeTextWithTitle(context, R.string.label_file_path, songFile.getAbsolutePath()));
            fileSize.setText(makeTextWithTitle(context, R.string.label_file_size, getFileSizeString(songFile.length())));
            try {
                AudioFile audioFile = AudioFileIO.read(songFile);
                AudioHeader audioHeader = audioFile.getAudioHeader();

                fileFormat.setText(makeTextWithTitle(context, R.string.label_file_format, audioHeader.getFormat()));
                trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(audioHeader.getTrackLength() * 1000)));
                bitRate.setText(makeTextWithTitle(context, R.string.label_bit_rate, audioHeader.getBitRate() + " kb/s"));
                samplingRate.setText(makeTextWithTitle(context, R.string.label_sampling_rate, audioHeader.getSampleRate() + " Hz"));
            } catch (@NonNull CannotReadException | IOException | TagException | ReadOnlyFileException | InvalidAudioFrameException e) {
                Log.e(TAG, "error while reading the song file", e);
                // fallback
                trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(song.duration)));
            }
        } else {
            // fallback
            fileName.setText(makeTextWithTitle(context, R.string.label_file_name, song.title));
            trackLength.setText(makeTextWithTitle(context, R.string.label_track_length, MusicUtil.getReadableDurationString(song.duration)));
        }
    }

    return dialog;
}