com.google.android.exoplayer2.util.Util.split()方法的使用及代码示例

x33g5p2x  于2022-02-01 转载在 其他  
字(6.9k)|赞(0)|评价(0)|浏览(194)

本文整理了Java中com.google.android.exoplayer2.util.Util.split()方法的一些代码示例,展示了Util.split()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Util.split()方法的具体详情如下:
包路径:com.google.android.exoplayer2.util.Util
类名称:Util
方法名:split

Util.split介绍

[英]Splits a string using value.split(regex, -1). Note: this is is similar to String#split(String) but empty matches at the end of the string will not be omitted from the returned array.
[中]使用值拆分字符串。split(regex,-1)。注意:这与字符串#split(String)类似,但返回的数组中不会忽略字符串末尾的空匹配项。

代码示例

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Splits a codecs sequence string, as defined in RFC 6381, into individual codec strings.
  3. *
  4. * @param codecs A codec sequence string, as defined in RFC 6381.
  5. * @return The split codecs, or an array of length zero if the input was empty.
  6. */
  7. public static String[] splitCodecs(String codecs) {
  8. if (TextUtils.isEmpty(codecs)) {
  9. return new String[0];
  10. }
  11. return split(codecs.trim(), "(\\s*,\\s*)");
  12. }

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Parses a WebVTT timestamp.
  3. *
  4. * @param timestamp The timestamp string.
  5. * @return The parsed timestamp in microseconds.
  6. * @throws NumberFormatException If the timestamp could not be parsed.
  7. */
  8. public static long parseTimestampUs(String timestamp) throws NumberFormatException {
  9. long value = 0;
  10. String[] parts = Util.splitAtFirst(timestamp, "\\.");
  11. String[] subparts = Util.split(parts[0], ":");
  12. for (String subpart : subparts) {
  13. value = (value * 60) + Long.parseLong(subpart);
  14. }
  15. value *= 1000;
  16. if (parts.length == 2) {
  17. value += Long.parseLong(parts[1]);
  18. }
  19. return value * 1000;
  20. }

代码示例来源:origin: google/ExoPlayer

  1. private String[] parseStyleIds(String parentStyleIds) {
  2. parentStyleIds = parentStyleIds.trim();
  3. return parentStyleIds.isEmpty() ? new String[0] : Util.split(parentStyleIds, "\\s+");
  4. }

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Compares version strings of format "12.123.35.23".
  3. */
  4. private static int compareVersionStrings(String versionLeft, String versionRight) {
  5. if (versionLeft == null || versionRight == null) {
  6. return 0;
  7. }
  8. String[] versionStringsLeft = Util.split(versionLeft, "\\.");
  9. String[] versionStringsRight = Util.split(versionRight, "\\.");
  10. int minLength = Math.min(versionStringsLeft.length, versionStringsRight.length);
  11. for (int i = 0; i < minLength; i++) {
  12. if (!versionStringsLeft[i].equals(versionStringsRight[i])) {
  13. try {
  14. int versionIntLeft = Integer.parseInt(versionStringsLeft[i]);
  15. int versionIntRight = Integer.parseInt(versionStringsRight[i]);
  16. return versionIntLeft - versionIntRight;
  17. } catch (NumberFormatException e) {
  18. return 0;
  19. }
  20. }
  21. }
  22. return 0;
  23. }
  24. }

代码示例来源:origin: google/ExoPlayer

  1. public static StartTag buildStartTag(String fullTagExpression, int position) {
  2. fullTagExpression = fullTagExpression.trim();
  3. if (fullTagExpression.isEmpty()) {
  4. return null;
  5. }
  6. int voiceStartIndex = fullTagExpression.indexOf(" ");
  7. String voice;
  8. if (voiceStartIndex == -1) {
  9. voice = "";
  10. } else {
  11. voice = fullTagExpression.substring(voiceStartIndex).trim();
  12. fullTagExpression = fullTagExpression.substring(0, voiceStartIndex);
  13. }
  14. String[] nameAndClasses = Util.split(fullTagExpression, "\\.");
  15. String name = nameAndClasses[0];
  16. String[] classes;
  17. if (nameAndClasses.length > 1) {
  18. classes = Arrays.copyOfRange(nameAndClasses, 1, nameAndClasses.length);
  19. } else {
  20. classes = NO_CLASSES;
  21. }
  22. return new StartTag(name, position, voice, classes);
  23. }

代码示例来源:origin: google/ExoPlayer

  1. private FrameAndTickRate parseFrameAndTickRates(XmlPullParser xmlParser)
  2. throws SubtitleDecoderException {
  3. int frameRate = DEFAULT_FRAME_RATE;
  4. String frameRateString = xmlParser.getAttributeValue(TTP, "frameRate");
  5. if (frameRateString != null) {
  6. frameRate = Integer.parseInt(frameRateString);
  7. }
  8. float frameRateMultiplier = 1;
  9. String frameRateMultiplierString = xmlParser.getAttributeValue(TTP, "frameRateMultiplier");
  10. if (frameRateMultiplierString != null) {
  11. String[] parts = Util.split(frameRateMultiplierString, " ");
  12. if (parts.length != 2) {
  13. throw new SubtitleDecoderException("frameRateMultiplier doesn't have 2 parts");
  14. }
  15. float numerator = Integer.parseInt(parts[0]);
  16. float denominator = Integer.parseInt(parts[1]);
  17. frameRateMultiplier = numerator / denominator;
  18. }
  19. int subFrameRate = DEFAULT_FRAME_AND_TICK_RATE.subFrameRate;
  20. String subFrameRateString = xmlParser.getAttributeValue(TTP, "subFrameRate");
  21. if (subFrameRateString != null) {
  22. subFrameRate = Integer.parseInt(subFrameRateString);
  23. }
  24. int tickRate = DEFAULT_FRAME_AND_TICK_RATE.tickRate;
  25. String tickRateString = xmlParser.getAttributeValue(TTP, "tickRate");
  26. if (tickRateString != null) {
  27. tickRate = Integer.parseInt(tickRateString);
  28. }
  29. return new FrameAndTickRate(frameRate * frameRateMultiplier, subFrameRate, tickRate);
  30. }

代码示例来源:origin: google/ExoPlayer

  1. /**
  2. * Sets the target of a {@link WebvttCssStyle} by splitting a selector of the form
  3. * {@code ::cue(tag#id.class1.class2[voice="someone"]}, where every element is optional.
  4. */
  5. private void applySelectorToStyle(WebvttCssStyle style, String selector) {
  6. if ("".equals(selector)) {
  7. return; // Universal selector.
  8. }
  9. int voiceStartIndex = selector.indexOf('[');
  10. if (voiceStartIndex != -1) {
  11. Matcher matcher = VOICE_NAME_PATTERN.matcher(selector.substring(voiceStartIndex));
  12. if (matcher.matches()) {
  13. style.setTargetVoice(matcher.group(1));
  14. }
  15. selector = selector.substring(0, voiceStartIndex);
  16. }
  17. String[] classDivision = Util.split(selector, "\\.");
  18. String tagAndIdDivision = classDivision[0];
  19. int idPrefixIndex = tagAndIdDivision.indexOf('#');
  20. if (idPrefixIndex != -1) {
  21. style.setTargetTagName(tagAndIdDivision.substring(0, idPrefixIndex));
  22. style.setTargetId(tagAndIdDivision.substring(idPrefixIndex + 1)); // We discard the '#'.
  23. } else {
  24. style.setTargetTagName(tagAndIdDivision);
  25. }
  26. if (classDivision.length > 1) {
  27. style.setTargetClasses(Arrays.copyOfRange(classDivision, 1, classDivision.length));
  28. }
  29. }

代码示例来源:origin: google/ExoPlayer

  1. groupedAdaptationSetIndices[groupCount++] = new int[] {i};
  2. } else {
  3. String[] extraAdaptationSetIds = Util.split(adaptationSetSwitchingProperty.value, ",");
  4. int[] adaptationSetIndices = new int[1 + extraAdaptationSetIds.length];
  5. adaptationSetIndices[0] = i;

代码示例来源:origin: google/ExoPlayer

  1. String[] sysDisplaySizeParts = split(sysDisplaySize.trim(), "x");
  2. if (sysDisplaySizeParts.length == 2) {
  3. int width = Integer.parseInt(sysDisplaySizeParts[0]);

代码示例来源:origin: google/ExoPlayer

  1. @Override
  2. public long open(DataSpec dataSpec) throws IOException {
  3. transferInitializing(dataSpec);
  4. this.dataSpec = dataSpec;
  5. Uri uri = dataSpec.uri;
  6. String scheme = uri.getScheme();
  7. if (!SCHEME_DATA.equals(scheme)) {
  8. throw new ParserException("Unsupported scheme: " + scheme);
  9. }
  10. String[] uriParts = Util.split(uri.getSchemeSpecificPart(), ",");
  11. if (uriParts.length != 2) {
  12. throw new ParserException("Unexpected URI format: " + uri);
  13. }
  14. String dataString = uriParts[1];
  15. if (uriParts[0].contains(";base64")) {
  16. try {
  17. data = Base64.decode(dataString, 0);
  18. } catch (IllegalArgumentException e) {
  19. throw new ParserException("Error while parsing Base64 encoded string: " + dataString, e);
  20. }
  21. } else {
  22. // TODO: Add support for other charsets.
  23. data = Util.getUtf8Bytes(URLDecoder.decode(dataString, C.ASCII_NAME));
  24. }
  25. transferStarted(dataSpec);
  26. return data.length;
  27. }

代码示例来源:origin: google/ExoPlayer

  1. private static void parseFontSize(String expression, TtmlStyle out) throws
  2. SubtitleDecoderException {
  3. String[] expressions = Util.split(expression, "\\s+");
  4. Matcher matcher;
  5. if (expressions.length == 1) {

相关文章