public virtual void doWrite(TagWriter tagWriter, Playlist playlist, MediaPlaylist mediaPlaylist) { tagWriter.writeTag(getTag()); }
public override void doWrite(TagWriter tagWriter, Playlist playlist, MediaPlaylist mediaPlaylist) { tagWriter.writeTag(getTag(), mediaPlaylist.getTargetDuration().ToString()); }
public override Playlist parse() { validateAvailable(); ParseState state = new ParseState(mEncoding); LineParser playlistParser = new PlaylistLineParser(); LineParser trackLineParser = new TrackLineParser(); try { while (mScanner.hasNext()) { String line = mScanner.next(); checkWhitespace(line); if (line.Length == 0 || isComment(line)) { continue; } else { if (isExtTag(line)) { String tagKey = getExtTagKey(line); mExtTagParsers.TryGetValue(tagKey, out IExtTagParser tagParser); if (tagParser == null) { //To support forward compatibility, when parsing Playlists, Clients //MUST: //o ignore any unrecognized tags. if (mParsingMode.allowUnknownTags) { tagParser = ExtLineParser.EXT_UNKNOWN_HANDLER; } else { throw ParseException.create(ParseExceptionType.UNSUPPORTED_EXT_TAG_DETECTED, tagKey, line); } } tagParser.parse(line, state); if (state.isMedia() && state.getMedia().endOfList) { break; } } else if (state.isMaster()) { playlistParser.parse(line, state); } else if (state.isMedia()) { trackLineParser.parse(line, state); } else { throw ParseException.create(ParseExceptionType.UNKNOWN_PLAYLIST_TYPE, line); } } } Playlist playlist = state.buildPlaylist(); PlaylistValidation validation = PlaylistValidation.from(playlist, mParsingMode); if (validation.isValid()) { return(playlist); } else { throw new PlaylistException(mScanner.getInput(), validation.getErrors()); } } catch (ParseException exception) { exception.setInput(mScanner.getInput()); throw exception; } }
public override void doWrite(Playlist playlist) { throw new InvalidOperationException(); }
private static bool hasBothPlaylistTypes(Playlist playlist) { return(playlist.hasMasterPlaylist() && playlist.hasMediaPlaylist()); }
private static bool hasNoPlaylistTypes(Playlist playlist) { return(!(playlist.hasMasterPlaylist() || playlist.hasMediaPlaylist())); }
/** * Equivalent to: PlaylistValidation.from(playlist, ParsingMode.STRICT) */ public static PlaylistValidation from(Playlist playlist) { return(PlaylistValidation.from(playlist, ParsingMode.STRICT)); }