我正在尝试制作自定义音乐播放器而不使用音频标签内的"controls"标签.首先,我想创建类似于SCM音乐播放器的东西.我不会使用SCM提供的那个,因为它在添加到我的网站时以某种方式使用了大量的空间,我还没想出如何隐藏/显示它,因为它都在一个脚本标签内,它真的对Y-Slow速度有影响.
这是我想要创建的图像:
这是我到目前为止:https ://jsfiddle.net/e13gs8qg/6/ (更新)
HTML :(已更新)
<audio id="player" class="mediaplayerclass">
<source title="Fruity Loops Own Track Copy" src="https://cdn.shopify.com/s/files/1/0804/2449/files/fruityloops_own_track_copy.mp3" />
<source title="Fruity Loops Own Track Copy 2" src="https://cdn.shopify.com/s/files/1/0804/2449/files/fruityloops_own_track_copy_2.mp3" />
</audio>
<div class="playermenuwrapper">
<button id="previoussong" class="previoussongclass">
Previous
</button>
<button id="playpause" class="playpauseclass">
play
</button>
<button id="nextsong" class="nextsongclass">
Next
</button>
<div id="songtitle" class="titleclass"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.playermenuwrapper {
text-align:center;
margin: 0px auto;
max-width:100%;
}
.previoussongclass {
display:inline-block;
width:80px;
}
.playpauseclass {
display:inline-block;
width:80px;
}
.nextsongclass {
display:inline-block;
width:80px;
}
.mediaplayerclass {
display:block;
width:150px; …Run Code Online (Sandbox Code Playgroud) 我发现一篇文章介绍了随机化字典条目的概念,而不是在混淆时使用标准的“a,b,c,...”作为类名和变量。他解释说,任务可以在构建时在 gradle 中运行,以生成一个随机文本文件,该文件可以替换默认提供的文件:
tasks.whenTaskAdded { currentTask ->
//Android Gradle plugin may change this task name in the future
def prefix = 'transformClassesAndResourcesWithProguardFor'
if (currentTask.name.startsWith(prefix)) {
def taskName = currentTask.name.replace(prefix,
'createProguardDictionariesFor')
task "$taskName" {
doLast {
createRandomizedDictonaries()
}
}
//append scramble task to proguard task
currentTask.dependsOn "$taskName"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我不知道他如何createRandomizedDictonaries()在 gradle 中运行以及如何创建一个包含字母/整数/符号的随机列表的文本文件。逻辑可能是这样的:
欢迎提供适用于 kotlin 和 java …
我目前有一个代码片段,它按升序返回列表的字符串:
Collections.sort(myList, new Comparator<MyClass>() {
@Override
public int compare(MyClass o1, MyClass o2) {
return o1.aString.compareTo(o2.aString);
}
});
Run Code Online (Sandbox Code Playgroud)
虽然它有效,但我想在订单中添加一些自定义“规则”,以将某些字符串放在前面。例如:
if(aString.equals("Hi")){
// put string first in the order
}
if(aString begins with a null character, e.g. " ") {
// put string after Hi, but before the other strings
}
// So the order could be: Hi, _string, a_string, b_string, c_string
Run Code Online (Sandbox Code Playgroud)
是否可以像这样自定义列表的排序Comparator?
我有几个用ViewPager. 我在 MainActivity 的方法中addOnPageChangeListener添加了一个,它给出了所选片段的位置。ViewPageronCreate
尽管我通过声明 a 来防止片段自行销毁setOffscreenPageLimit,但我仍然没有弄清楚如何从 MainActivity 访问片段,因为简单地使用findViewById会返回空对象异常。
我想做的事:
我想访问片段的元素,例如布局和滚动视图,OnPageListener在ViewPager:
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int i) {
if(i == 0) {
// Do something with the first fragment.
} else if(i == 1) {
// Do something with the second fragment.
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用ViewPager:FragmentPagerAdapter
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public …Run Code Online (Sandbox Code Playgroud) android ×3
java ×2
comparator ×1
css ×1
gradle ×1
html ×1
javascript ×1
obfuscation ×1
proguard ×1