Programmieren für Linux

  • Sonstige

Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von hal2000.

    Programmieren für Linux

    Hallo ihr lieben,

    ich habe mir zur Aufgabe gemacht meinen tmPlayer der zunächst mal für Windows ist, auch für Linux zu programmieren und da habe ich schon sehr viel gesucht nach Tutorials für Gambas aber es gibt keine Hilfe (Tutorials) darüber wie man einen Player in Gambas für Linux programmieren kann. Deshalb möchte ich euch fragen ob sich hier einer damit auskennt bzw. nur so ein Beispiel machen kann?

    MFG
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Ich fürchte da biste mit Gambas auf dem falschen Dampfer:
    de.wikipedia.org/wiki/Gambas_(Programmiersprache)

    Um es kurz zu fassen ist Gambas wohl eine ein Linux-Port für Visual Basic, nicht aber für VB.NET.
    Wenn du wirklich dein Programm Portieren und nicht von Grund auf von neuem schreiben möchtest, schau dir mal Mono an.
    Es gibt auch nicht für alles Tutorials, arbeite dich in die Themen ein und probier' selbst etwas herum, jeder muss sich seinen Kram aus verschiedenen Quellen zusammenbasteln.
    Du gibst uns außerdem nichtmals Informationen bezüglich deiner gewünschten Funktionen. Ja du willst einen CrossPlatform Media Player basteln, aber was soll der alles können?
    Nur abspielen? Track wechseln? Alles was der WMP auch kann?

    Der Umfang deines Vorhabens spielt hier auch eine große Rolle und wenn jemand deinen Player nicht kennt solltest du hier zumindest nochmal erwähnen was dein Player bis jetzt kann und was er auf Linux dann auch können soll.
    Ich kann mir gut vorstellen das es da wenig bis keine Tutorials zu gibt, aber du kannst dich auch selbst informieren inwiefern es da schon Bibliotheken gibt oder wie man eine einfache MP3 Datei abspielt.

    Thiemo1991 schrieb:

    meinen tmPlayer [...], auch für Linux zu programmieren
    Wirste wohl SharpDevelope und Mono hernehmen müssen
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Es ist egal welche IDE er verwendet. SharpDevelop läuft auch nur auf Win.
    MonoDevelop wär in dieser Hinsicht also sinnvoller.
    Du brauchst für Mono keine Tutorials: Mach alles wie du es sonst auch machst und lass es laufen. Die unterschiede zu .Net lassen sich dann relativ schnell finden, sind aber für die meisten Anwendungsfälle marginal. Probleme bekommst du viel mehr mit den Unterschieden zwischen Windows und Linux. Alles was auf eine Native Dll zurückgreift ohne explizit Linux unterstützung zu haben kannst du vergessen. Angefangen bei jeglicher Windows API.
    Du willst also entweder eine Plattformunabhängige Multimedia-Library, oder musst els selbst machen, was dann auch auf Native calls zurückgehen wird, dies wiederum heißt, dass du dir C libraries angucken darfst. Am einfachsten sind dabei natürlich libraries, die es für Win und Linux gibt, dann musst du nicht alles für jedes OS extra machen(Stichwort DllMap oder auch dlopen vs LoadLibrary)
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    jvbsl schrieb:

    MonoDevelop
    Meinte ich *doh*
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell

    Eddy schrieb:

    Nimm die Bass.dll, bzw. fuer Linux die libbass.so. Dafuer findest du Codes ohne ende mit denen du Puzzle spielen kannst.

    un4seen.com/

    Oder für Windows die CSCore.

    Auf jeden Fall ist hier Eigeninitiative gefragt.

    Thiemo1991 schrieb:

    ich habe mir zur Aufgabe gemacht meinen tmPlayer der zunächst mal für Windows ist, auch für Linux zu programmieren


    Thiemo1991 schrieb:

    Ich möchte mein Player der auf den Windows Media Player basiert, auch für Linux und/oder auch für Mac zu programmieren.


    Sind für mich zwei vom Inhalt her identische Sätze.
    Ohne mehr Informationen bin ich hier dann erstmal raus.
    Wird nicht passieren, es sei denn du holst dir denn SourceCode des WMP und portierst ihn auf die jeweiligen Systeme und bei der ganzen WinAPI, die der verwendet wirst du dafür ein paar Jahre brauchen, vorrausgesetzt, du bekommst den Quellcode, was ich stark bezweifle.

    Such dir eine gescheite Library und nicht irgendein COM mist. Und wie gesagt, am besten ist die Library OS unabhängig. Und falls du nicht direkt eine für C# findest, nimm eine native Library die es für die unterschiedlichen OS gibt.
    Stichworte wurden dir zu genüge gegeben, sogar eine Library wurde dir genannt(die allerdings nur Audio unterstützt - allerdings solltest du vlt. erst einmal das hinbekommen, dann können wir über den Rest sprechen).
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    Kann man mir eventuell ein Beispielprojekt geben sodass ich den Code verstehen kann oder gibt es hier vielleicht Tutorials über die Bass DLL?

    Ich verstehe nämlich den Code von der Bass DLL leider nicht.
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Ich brauche keine Dokumentation sondern Tutorials (egal ob es schriftliche oder als Video). Ich weiß das mir viele schreiben werden dass ich das so nie lernen kann aber ich kann nur so lernen.
    Wie man mich kontaktieren kann:
    thiemo-melhorn.de
    Hey,
    also @EaranMaleasi hat dir mehrere Links zu einem Wrapper für .NET gegeben (BASS.NET) [und auch noch in schöner Reihenfolge...].

    Auf der 'Overview'-Seite, nachdem ich ein wenig gescrollt habe, konnte ich direkt "My First BASS Application" finden- ein Beispiel, ich sehe es als Tutorial an, mit dem man direkt schon Mal eine MP3 spielen kann.

    Spoiler anzeigen

    C#-Quellcode

    1. using System;
    2. using Un4seen.Bass;
    3. namespace MyFirstBass
    4. {
    5. class Program
    6. {
    7. static void Main(string[] args)
    8. {
    9. // init BASS using the default output device
    10. if ( Bass.BASS_Init(-1, 44100, BASSInit.BASS_DEVICE_DEFAULT, IntPtr.Zero) )
    11. {
    12. // create a stream channel from a file
    13. int stream = Bass.BASS_StreamCreateFile("test.mp3", 0, 0, BASSFlag.BASS_DEFAULT);
    14. if (stream != 0)
    15. {
    16. // play the stream channel
    17. Bass.BASS_ChannelPlay(stream, false);
    18. }
    19. else
    20. {
    21. // error creating the stream
    22. Console.WriteLine("Stream error: {0}", Bass.BASS_ErrorGetCode());
    23. }
    24. // wait for a key
    25. Console.WriteLine("Press any key to exit");
    26. Console.ReadKey(false);
    27. // free the stream
    28. Bass.BASS_StreamFree(stream);
    29. // free BASS
    30. Bass.BASS_Free();
    31. }
    32. }
    33. }
    34. }
    Option Strict On!