Ich habe eine Seite, die eine Datentabelle von MP3-Dateien über ein serverseitiges Skript lädt. Ich benutze das Sound-Manager-Plugin, um die Dateien abzuspielen, aber sie spielen nicht inline und öffnen nur in einem neuen Fenster. Ich denke, das liegt daran, dass der Inline-Player initialisiert wird, bevor die Tabelle vollständig geladen ist, so dass die MP3-Dateien nicht gefunden werden. Wie kann ich den "Hören" -Knopf erhalten, um diese Dateien inline (auf der Seite) abzuspielen?MP3 Dateien, die nicht über Inline-Player wiedergegeben werden
Javascript:
<script src="{{asset('soundmanager/js/soundmanager2-jsmin.js')}}"></script>
<script src="{{asset('soundmanager/js/inlineplayer.js')}}"></script>
<script type="text/javascript">
$(document).ready(function() {
$('#uploads-table').dataTable({
"bProcessing": true,
"bServerSide": true,
"bPaginate": true,
"destroy": true,
"sAjaxSource": "/api/admin/tables/uploads",
"order": [[5,'desc']],
"columnDefs": [ { //this prevents errors if the data is null
"targets": "_all",
"defaultContent": ""
} ],
"columns": [
// title will auto-generate th columns
{ "data": "name", "title": "Name", "orderable": true, "searchable": true },
{ "data": "description", "title": "Description", "orderable": true, "searchable": true },
{ "data": "file_extension", "title": "File Extension", "orderable": true, "searchable": true },
{ "data": "mimetype", "title": "Mimetype", "orderable": true, "searchable": true },
{ "data": "created_by", "title": "Created By", "orderable": true, "searchable": true },
{ "data": "created_at", "title": "Created At", "orderable": true, "searchable": true },
{ "data": "updated_at", "title": "Updated At", "orderable": true, "searchable": true },
{ "data": "actions", "title": "Actions", "orderable": false, "searchable": false}
]
});
});
</script>
Server-Seite Skript:
$upload = Upload::select(array('id','name', 'description', 'file_extension', 'mimetype', 'created_by', 'created_at', 'updated_at', 'filename', 'is_remote'));
return Datatables::of($upload)
->edit_column('name', '<a href="/admin/content/uploads/{{$id}}/view">{{$name}}</a>')
->edit_column('created_by', function($upload) {
return ($upload->user ? '<a href="/admin/users/'.$upload->user->id.'/view">'.$upload->user->username.'</a>' : 'Unknown');
})
->edit_column('actions', function($upload) {
if($upload->is_remote) {
$filePath = URL::to($upload->filename);
}
else {
$filePath = URL::to($upload->getFilePath());
}
return ('<a href="'.$filePath.'" type="'.$upload->mimetype.'" class="sm2_link" target="_blank">Listen</a>
<a href="/admin/content/uploads/'.$upload->id.'/view" class="btn btn-xs btn-default">View</a>
<a href="/admin/content/uploads/'.$upload->id.'/edit" class="btn btn-xs btn-default">Edit</a>
<a data-itemname="'.$upload->name.'" data-action="/admin/content/uploads/'.$upload->id.'/delete" data-title="Delete Upload?" data-toggle="modal" href="#deleteModal" class="confirmDelete btn btn-xs btn-default">Delete</a>');
})
->remove_column('id')
->make(true);
Vielen Dank! Es funktioniert jetzt perfekt :) – Taylor23
Also sprach ich ein wenig zu früh, es funktioniert perfekt für die erste Seite. Die Tabelle wird jedoch paginiert, wenn ich also zur nächsten Seite gehe, versucht sie, die Dateien von der vorherigen Seite über die neuen Dateien abzuspielen. Die Standard-Display-Länge beträgt 10 Uploads, aber wenn ich diese auf 25 setze, die nächsten 15 Spiele, aber pausiere nicht beim Klicken. – Taylor23
@ Taylor23, Ich habe den Code aktualisiert, sehen, ob es funktioniert. –